将2列存储到List中
本文关键字:List 存储 2列 | 更新日期: 2023-09-27 18:17:30
如何在列表中存储2列(来自数据库)的数据
List<string> _items = new List<string>();
感谢您的帮助
您创建了一个类,它将表示有两列的一行:
public class Foo
{
// obviously you find meaningful names of the 2 properties
public string Column1 { get; set; }
public string Column2 { get; set; }
}
然后存储在List<Foo>
:
List<Foo> _items = new List<Foo>();
_items.Add(new Foo { Column1 = "bar", Column2 = "baz" });
使用像KeyValuePair这样的元组结构
List<KeyValuePair<string, string>> _items = new List<KeyValuePair<string, string>>();
_items.Add(new KeyValuePair<string, string>(foo, bar));
我会使用class
List<MyDataClass> _items = new List<MyDataClass>();
public class MyDataClass
{
public string Value1 { get; set; }
public string Value2 { get; set; }
}
您可以创建一个新类来保存数据,或者您可以使用内置的Tuple<>
类。http://msdn.microsoft.com/en-us/library/system.tuple.aspx
如果其中一列包含某种类型的唯一ID,您还可以考虑使用Dictionary<>
。
这是关于如何从新的两列列表中检索数据
List<ListTwoColumns> JobIDAndJobName = new List<ListTwoColumns>();
for (int index = 0; index < JobIDAndJobName.Count;index++)
{
ListTwoColumns List = JobIDAndJobName[index];
if (List.Text == this.cbJob.Text)
{
JobID = List.ID;
}
}
我知道这个问题很老了,现在你可能已经得到了答案,并且已经弄清楚了你需要什么,但是我想添加一些可能在未来帮助别人的东西。
目前最好的答案坦率地说来自@csharptest.net,但它有一个严重的性能缺陷,所以这是我的方法,基于使用Dictionary<TKey, TValue>
的建议。
private Dictionary<string, string> _items = new Dictionary<string, string>();
// if you need to check to see if it exists already or not
private void AddToList(string one, string two)
{
if (!_items.ContainsKey(one))
_items.Add(one, two);
}
// you can simplify the add further
private void AddToList(string one, string two)
{
_items[one] = two;
// note if you try to add and it exists, it will throw exception,
// so alternatively you can wrap it in try/catch - dealer's choice
}
你也可以创建list数组
List<string> [] list= new List<String> [];
list[0]=new List<string>();
list[1]=new List<string>();
list[0].add("hello");
list[1].add("world");
你可以这样做:
List<IList<string>> cols = new List<IList<string>>();
你可以设置你想要多少列。
cols.Add(new List<string> { "", "", "","more","more","more","more","..." });