Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检索列表的索引<&燃气轮机;使用Linq在C#中基于项_C#_Linq - Fatal编程技术网

检索列表的索引<&燃气轮机;使用Linq在C#中基于项

检索列表的索引<&燃气轮机;使用Linq在C#中基于项,c#,linq,C#,Linq,这是一个非常简单的问题,我有一个对象列表,其中有一个名为“ID”的字段 如果我知道ID,如何检索列表中对象的索引 例如: CUSTOM_OBJECTS test = new CUSTOM_OBJECTS{ID=50}; List<CUSTOM_OBJECTS> List = new List<CUSTOM_OBJECTS>(); List.Add(test); CUSTOM_OBJECTS test=new CUSTOM_OBJECTS{ID=50}; 列表=新列表()

这是一个非常简单的问题,我有一个对象列表,其中有一个名为“ID”的字段

如果我知道ID,如何检索列表中对象的索引

例如:

CUSTOM_OBJECTS test = new CUSTOM_OBJECTS{ID=50};
List<CUSTOM_OBJECTS> List = new List<CUSTOM_OBJECTS>();
List.Add(test);
CUSTOM_OBJECTS test=new CUSTOM_OBJECTS{ID=50};
列表=新列表();
列表。添加(测试);
我想检索列表中ID=50的对象的索引,在本例中为0

var index = List.FindIndex(x=>x.ID==50);

您也可以使用SingleOrDefault、First或FirstOrDefault方法。

-1他说他想要的是具有该ID的对象的索引,而不是对象本身。您的答案如下,但您应该真正考虑您的编码标准。类的全大写名称和列表对象的大写字母将使大多数其他开发人员难以阅读您的代码。现在就去洗我的眼睛!很抱歉给您带来不便:-)类必须在CamelCase中?它们不必在CamelCase中,只是只使用大写字母会使代码难以阅读(而且看起来非常sql风格:)@Orf-通常类、属性、事件等都是CamelCase,字段、局部变量、参数等都是pascalCase。您当然可以随意选择,但这将与您的C#开发者同事最为“兼容”:@Øyvind-您混淆了它,PascalCase是标识符中的第一个字母,后面每个单词的第一个字母都是大写字母。camelCase是小写的第一个字母,后面的每个单词都是大写的。我很确定FindIndex只存在于List类中,所以它不会在其他IEnumerable上工作。以防万一有人在某个时候感到困惑。@Glenn:是的,
FindIndex()
这是一个常规的
列表方法,而不是LINQ的方法;)@tchrikch-我自己不知道
FindIndex
,所以我很感激这个答案。祝贺你的第一个银质徽章,一旦Orf接受这个答案,你就会收到它:)@yvind Knobloch Brå然后谢谢,我知道这并不完全是一个LINQ方法,但如果你在通用列表对象上工作,那就太棒了
CUSTOM_OBJECT singleObject = list.Single(co => co.ID == 50)