我有以下代码:
class exampleClass
{
int var1;
int var2;
string var3
}
List<exampleClass> myList = new List<exampleClass>()
myList.Add(new exampleClass { var1 = 10, var2 = 100, var3 = "a"});
myList.Add(new exampleClass { var1 = 20, var2 = 200, var3 = "b"});
etc.
如果我想在列表中找到var1 = 20的对象的索引#,我该怎么做(在这种情况下,var1 = 20在myList [1]中)?
我尝试使用Contain(),但却出现了错误。
在一个相关的主题上,假设var1的每个值都是唯一的,如果我使用一个以var1作为键的字典,它会更快。感谢。
答案 0 :(得分:3)
int index = myList.FindIndex(x => x.var1 == 20);
答案 1 :(得分:2)
更快是一个非常相对的术语。它总是取决于集合中的对象数量。它可能会更容易,但更有意义。
使用您的示例:
class exampleClass
{
int var1;
int var2;
string var3
}
List<exampleClass> myList = new List<exampleClass>()
myList.Add(new exampleClass { var1 = 10, var2 = 100, var3 = "a"});
myList.Add(new exampleClass { var1 = 20, var2 = 200, var3 = "b"});
var dict = myList.ToDictionary(k => k.var1);
exampleClass item1 = dict[20];
答案 2 :(得分:2)
var index = myList.FindIndex(val => val.Var1 == 20);
答案 3 :(得分:1)
这是一个full article就是这么做的。它根据您的需要提供多种解决方案。
答案 4 :(得分:1)