Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
C# 从另一个列表中的字符串获取列表的索引_C#_List_Indexing - Fatal编程技术网

C# 从另一个列表中的字符串获取列表的索引

C# 从另一个列表中的字符串获取列表的索引,c#,list,indexing,C#,List,Indexing,我有两份清单: public static List<Dinosaur> Dinosaurs = new List<Dinosaur>(); public static List<DinosaurSpecies> DinosaurSpeciesList = new List<DinosaurSpecies>(); 换句话说,恐龙列表中的物种[索引]在所有恐龙物种的列表中出现在哪里?您可以通过将a传递给FindIndex方法来实现这一点: 基本上,

我有两份清单:

public static List<Dinosaur> Dinosaurs = new List<Dinosaur>();
public static List<DinosaurSpecies> DinosaurSpeciesList = new List<DinosaurSpecies>();

换句话说,恐龙列表中的物种[索引]在所有恐龙物种的列表中出现在哪里?

您可以通过将a传递给FindIndex方法来实现这一点:

基本上,您的意思是:查找元素的索引,该元素的Specie属性等于指定的恐龙.Specie属性

一个简化且更容易理解的示例可能是:

Dinosaur dinosaur = GetDinosaurToFindSpeciesInformationFor();
int index = DinosaurSpeciesList.FindIndex(x => x.Specie == dinosaur.Specie);
当然,如果您计划只使用索引来获取恐龙物种对象,您可以这样做:

DinosaurSpecies species = DinosaurSpeciesList.SingleOrDefault(x => x.Specie == dinosaur.Specie);
//NOTE: species will be null if there are no matches, or more than one match

可以通过向FindIndex方法传递

基本上,您的意思是:查找元素的索引,该元素的Specie属性等于指定的恐龙.Specie属性

一个简化且更容易理解的示例可能是:

Dinosaur dinosaur = GetDinosaurToFindSpeciesInformationFor();
int index = DinosaurSpeciesList.FindIndex(x => x.Specie == dinosaur.Specie);
当然,如果您计划只使用索引来获取恐龙物种对象,您可以这样做:

DinosaurSpecies species = DinosaurSpeciesList.SingleOrDefault(x => x.Specie == dinosaur.Specie);
//NOTE: species will be null if there are no matches, or more than one match
FindIndex的参数错误。单参数表单需要lambda,或者更具体地说,需要谓词:

当然,这取决于你的恐龙类课程

注:我喜欢恐龙

您用于查找索引的参数是错误的。单参数表单需要lambda,或者更具体地说,需要谓词:

当然,这取决于你的恐龙类课程



ps.我喜欢恐龙

为什么不使用类似地图或字典的数据结构?而且,除非.Specie是谓词,否则可能无法编译。嗯,这些列表结构在整个程序中都有使用,到目前为止效果很好。我相信有一个简单的解决办法;可能只是我的语法..如果是一个字段谓词?以前在恐龙类中从未听说过这样的词。此外,“物种”的单数是“物种”。为什么不使用地图或字典式的数据结构?除非使用,否则可能无法编译。物种是谓词。好吧,这些列表结构在整个程序中都有使用,到目前为止效果相当不错。我相信有一个简单的解决办法;可能只是我的语法..如果是一个字段谓词?在恐龙课上从来没有听说过这个词。而且,“物种”的单数是“物种”。谢谢你的解释!此外,我“保证”永远不会有空匹配项或多个匹配项,因为当“个体”恐龙被创建时,它会从恐龙物种列表中获取其“物种”。现在,我想用这个作为索引,从恐龙物种列表中提取其他数据,比如它每天需要吃多少食物/KG。@zetar:刚刚查看了你的博客,我认为这是一个非常好的想法,并祝你和你的团队在开发过程中好运。我将期待看到成品!FindIndex不是LINQ方法;此答案中使用的唯一LINQ方法是SingleOrDefault。@Servy。对的您已通过测试。@如果system.LINQ命名空间中定义的方法是LINQ方法,则其他方法不是。您可以使用MSDN、visual studio等来确定特定函数的定义位置,以及它是否是该命名空间中的函数之一。感谢您的解释!此外,我“保证”永远不会有空匹配项或多个匹配项,因为当“个体”恐龙被创建时,它会从恐龙物种列表中获取其“物种”。现在,我想用这个作为索引,从恐龙物种列表中提取其他数据,比如它每天需要吃多少食物/KG。@zetar:刚刚查看了你的博客,我认为这是一个非常好的想法,并祝你和你的团队在开发过程中好运。我将期待看到成品!FindIndex不是LINQ方法;此答案中使用的唯一LINQ方法是SingleOrDefault。@Servy。对的您已通过测试。@如果system.LINQ命名空间中定义的方法是LINQ方法,则其他方法不是。您可以使用MSDN、visual studio等来确定特定函数的定义位置,以及它是否是该命名空间中的函数之一。
int index = MainWindow.DinosaurSpeciesList.FindIndex(x => x.Specie.Equals(MainWindow.Dinosaurs[i].Specie));