C# 查找返回的列表结果C的索引
如何在列表中找到条目的索引。下面是我的代码 listFrom和listTo包含字符串项 我得到一个错误: 严重性代码说明项目文件行抑制状态 错误CS1503参数1:无法从“System.Collections.Generic.List”转换为“string”C# 查找返回的列表结果C的索引,c#,string,list,indexing,indexof,C#,String,List,Indexing,Indexof,如何在列表中找到条目的索引。下面是我的代码 listFrom和listTo包含字符串项 我得到一个错误: 严重性代码说明项目文件行抑制状态 错误CS1503参数1:无法从“System.Collections.Generic.List”转换为“string” 这是因为当你调用listFrom.IndexOflineStart;它需要一个字符串。代码中的lineStart定义为字符串列表,因此您可能需要调用列表中的特定值,或者将lineStart更改为字符串。根据错误说明,它无法从“System.
这是因为当你调用listFrom.IndexOflineStart;它需要一个字符串。代码中的lineStart定义为字符串列表,因此您可能需要调用列表中的特定值,或者将lineStart更改为字符串。根据错误说明,它无法从“System.Collections.Generic.List”转换为“string”。然而,我从来都不知道SingleOrdEvent函数的存在 这一切都归功于@maccettura,尽管他不知道我想做什么!xD 答案的代码更改如下:
List<string> listFrom = new List<string>(); //Contains a list of strings
List<string> listTo = new List<string>(); //Contains a list of strings
string lineStart = listFrom.Except(listTo).SingleOrDefault();
string lineEnd = listFrom.Except(listTo).SingleOrDefault();
int startLineIndex = listFrom.IndexOf(lineStart); //Error on this line
Console.WriteLine("Index of Start: " + startLineIndex);
你的名单都是空的。您想做什么?对于编译时错误,您不了解什么?该方法将字符串作为参数,您正在传入一个列表。listFrom.IndexOf需要一个字符串,您正在传入一个列表-错误消息在this@Stefan我不知道你想做什么。Except提供了两个列表之间差异的集合。如果确定结果集合中只有一个项目,请不要调用ToList,根据需要调用SingleOrDefault或FirstOrDefault。请务必查找它们之间的差异。@maccettura谢谢。SingleOrDefault满足我的要求。正确-将始终返回一个项目。我应该在我的问题中提到这一点。如果OP将lineStart更改为字符串,代码将无法编译。需要做的事情还有很多。请确保您知道SingleOrDefault的功能,如果由于某种原因导致您有多个项,它将抛出异常。供参考
List<string> listFrom = new List<string>(); //Contains a list of strings
List<string> listTo = new List<string>(); //Contains a list of strings
string lineStart = listFrom.Except(listTo).SingleOrDefault();
string lineEnd = listFrom.Except(listTo).SingleOrDefault();
int startLineIndex = listFrom.IndexOf(lineStart); //Error on this line
Console.WriteLine("Index of Start: " + startLineIndex);