在寻找这个问题的答案时,我遇到了使用LINQ的类似问题,但是由于我不熟悉它,所以我无法完全理解它们(因此无法实现它们)。我基本上想要的是:
- 检查列表中的任何元素是否包含特定字符串。
- 如果是这样,请获取该元素。
老实说,我不知道该怎么做。我能想到的是这样(当然不起作用):
if (myList.Contains(myString))
string element = myList.ElementAt(myList.IndexOf(myString));
我知道为什么它不起作用:
myList.Contains()
不返回true
,因为它将检查列表的整个元素是否与我指定的字符串匹配。myList.IndexOf()
不会发现任何情况,因为再次检查情况是,它将检查与字符串匹配的元素。
仍然,我不知道如何解决这个问题,但是我认为我必须按照类似的问题中的建议使用LINQ。话虽如此,如果是这种情况,我想请回答者在他们的示例中向我解释LINQ的用法(正如我所说的,我在使用C#时并没有为此而烦恼)。在此先感谢大家(还有gal?)。
编辑:我想出了一个解决方案;只需遍历列表,检查当前元素是否包含字符串,然后将字符串设置为等于当前元素。我想知道,是否有比这更有效的方法?
string myString = "bla";
string element = "";
for (int i = 0; i < myList.Count; i++)
{
if (myList[i].Contains(myString))
element = myList[i];
}
myString
,在当前循环中,您将获得最后一个元素。是否要查找第一个或最后一个取决于您,如果只想查找第一个,则在找到项目后中断循环。