列表与LT;>用数字和文字

时间:2014-12-13 16:07:13

标签: c# .net list

是否有List<>类似于二维数组?每个条目都有一个数字和文本。

5 个答案:

答案 0 :(得分:9)

您可以使用Dictionary<int,String>

<强>示例:

Dictionary<int,string> samp = new Dictionary<int,string>();
dictionary.Add(1, "text1");
dictionary.Add(2, "text2");

或者,有一个定义您的要求的自定义类

public class Sample
{
   public int Number;
   public string Text;
}

示例:

List<Sample> req = new List<Sample>();
Sample samObj = new Sample();
samObj.Number = 1;
samObj.Text = "FirstText";
req.Add(samObj);

答案 1 :(得分:5)

自定义类或字典是很好的选择,你也可以使用Tuple泛型......

var i = new List<Tuple<int, string>>();

词典要求使用任何值作为键必须是唯一的。没有独特性,那就不理想了。

如果你不介意多一些代码,并且如果你决定在那里想要其他数据,那么你可以在以后扩展范围。

元组快速简便,但您失去了可读性,无法编辑对象。

答案 2 :(得分:5)

有很多选项,我会为你描述一些

  1. 使用Dictionary<int, string>
    优点:非常快速查找 缺点:您不能拥有两个具有相同编号的字符串,您没有List

    var list2d = new Dictionary<int, string>();
    list2d[1] = "hello";
    list2d[2] = "world!";
    foreach (var item in list2d)
    {
        Console.WriteLine(string.Format("{0}: {1}", item.Key, item.Value);
    }
    
  2. 使用Tuple<int, string>
    优点:非常简单方便的工具,您有一个List
    缺点Tuple是不可变的,创建后无法更改其值,降低了代码可读性(Item1Item2

    var list2d = new List<Tuple<int, string>>();
    list2d.Add(new Tuple(1, "hello"));
    list2d.Add(Tuple.Create(1, "world");
    foreach (var item in list2d)
    {
        Console.WriteLine(string.Format("{0}: {1}", item.Item1, item.Item2);
    }
    
  3. 使用已定义的类,
    优点:您有一个List,非常可定制的 缺点:您应该编写更多代码来设置

    public class MyClass
    {
       public int Number { get; set; }
       public string Text { get; set; }
    }
    
    var list2d = new List<MyClass>();
    list2d.Add(new MyClass() { Number = 1, Text = "hello" });
    list2d.Add(new MyClass { Number = 2, Text = "world" });
    foreach (var item in list2d)
    {
        Console.WriteLine(string.Format("{0}: {1}", item.Number, item.Text);
    }
    

答案 3 :(得分:4)

使用字符串和int属性定义一个类

public class MyClass 
{ 
  public string MyStr {get;set;} 
  public int MyInt {get;set;} 
}

然后创建此类的列表

List<Myclass> myList = new List<MyClass>();

myList.add(new MyClass{MyStr = "this is a string", MyInt=5});

答案 4 :(得分:3)

希望它会有所帮助

public class DATA
{
    public int number;
    public string text;
}

List<DATA> list = new List<DATA>();