将2列存储到List中

本文关键字:List 存储 2列 | 更新日期: 2023-09-27 18:17:30

如何在列表中存储2列(来自数据库)的数据

List<string> _items = new List<string>();

感谢您的帮助

将2列存储到List中

您创建了一个类,它将表示有两列的一行:

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","..." });