在寻找这个问题的答案时,我遇到了类似的使用 LINQ 的问题,但我无法完全理解它们(因此,实现它们),因为我不熟悉它。我想要的基本上是这样的:
老实说,我不知道我会怎么做。我能想到的是这个(当然不工作):
if (myList.Contains(myString)) string element = myList.ElementAt(myList.IndexOf(myString));
我知道为什么它不起作用:
myList.Contains()
true
myList.IndexOf()
尽管如此,我仍然不知道如何解决这个问题,但我认为我必须按照与我的类似问题中的建议使用 LINQ。话虽如此,如果这里是这种情况,我希望回答者向我解释他们的示例中使用 LINQ(正如我所说,我在使用 C# 的时候并没有为此烦恼)。提前谢谢你们(和女孩?)。
编辑:我想出了一个解决方案;只需遍历列表,检查当前元素是否包含字符串,然后设置一个等于当前元素的字符串。不过,我想知道,还有比这更有效的方法吗?
string myString = "bla"; string element = ""; for (int i = 0; i < myList.Count; i++) { if (myList[i].Contains(myString)) element = myList[i]; }
您应该可以在这里使用 Linq:
var matchingvalues = myList .Where(stringToCheck => stringToCheck.Contains(myString));
如果您只想返回第一个匹配项:
var match = myList .FirstOrDefault(stringToCheck => stringToCheck.Contains(myString)); if(match != null) //Do stuff