是否有List<>
类似于二维数组?每个条目都有一个数字和文本。
答案 0 :(得分:9)
<强>示例:强>
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)
有很多选项,我会为你描述一些
使用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);
}
使用Tuple<int, string>
优点:非常简单方便的工具,您有一个List
缺点:Tuple
是不可变的,创建后无法更改其值,降低了代码可读性(Item1
,Item2
)
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);
}
使用已定义的类,
优点:您有一个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>();