当前位置: 首页 > 知识库问答 >
问题:

检查列表是否包含包含字符串的元素并获取该元素

司徒茂实
2023-03-14

在寻找这个问题的答案时,我也遇到过类似的利用LINQ的方法,但是我还不能完全理解它们(并因此实现它们),因为我对它还不熟悉。基本上,我想说的是:

  1. 检查列表的任何元素是否包含特定字符串。
  2. 如果是,则获取该元素。

老实说,我不知道该如何着手做那件事。我能想出的是这个(当然不工作):

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];
}

共有3个答案

巩衡
2023-03-14
string result = myList.FirstOrDefault(x => x == myString)
if(result != null)
{
  //found
}
盖斌
2023-03-14

基本的答案是:您需要遍历循环,并检查任何包含指定字符串的元素。所以,假设代码是:

foreach(string item in myList)
{
    if(item.Contains(myString))
       return item;
}

等效但简洁的代码是:

mylist.Where(x => x.Contains(myString)).FirstOrDefault();

这里,x是一个参数,其作用类似于上面代码中的“item”。

咸星波
2023-03-14

您应该可以在此处使用Linq:

var matchingvalues = myList
    .Where(stringToCheck => stringToCheck.Contains(myString));

如果您只想返回第一个匹配的项目:

var match = myList
    .FirstOrDefault(stringToCheck => stringToCheck.Contains(myString));

if(match != null)
    //Do stuff
 类似资料:
  • 问题内容: 我有这样的事情: 我想知道在Python中(不使用for循环)更优雅的方法是什么?我在想这样的事情(例如从C / C ++开始),但是没有用: 编辑:我有点被迫解释这与下面被标记为潜在重复项的问题有何不同(所以我想它不会关闭)。 区别是,我想检查一个字符串是否是某些字符串列表的一部分,而另一个问题是检查字符串列表中的字符串是否是另一个字符串的子字符串。 相似,但不完全相同,在网上寻求答

  • 问题内容: 我有这样的df: 以及物品清单: 我的目标是从中获取至少包含2个元素的所有行。 我想出了以下解决方案: 这给了我我想要的,但是就可伸缩性而言,它可能不是最佳的解决方案。是否有任何“向量化”解决方案?谢谢 问题答案: 我会建立一个Series列表,然后应用vectorized : 它给出了预期的结果:

  • 问题内容: 如何检查字符串中是否包含字符列表,例如“ ABCDEFGH”,如何检查字符串中是否有字符列表。 问题答案: 在Java中使用正则表达式检查在Java中使用 正则表达式 例如:

  • 问题内容: 使用普通的JavaScript(不是jQuery),是否可以检查元素是否 包含 类? 目前,我正在这样做: 问题是,如果我将HTML更改为此… …不再存在完全匹配的内容,因此我得到的默认输出为none()。但我还是想输出为,因为还 包含 了类。 问题答案: 使用方法: 这适用于所有当前浏览器,并且也有polyfill支持旧版本的浏览器。 或者 ,如果您使用较旧的浏览器,并且不想使用po

  • 我正在寻找一个运算符,它允许我检查字段的值是否包含某个字符串。 比如: 可能吗?

  • 所以我一辈子也想不出来。我正在尝试编写一个程序,提示用户输入电话号码。这将作为字符串输入,并在稍后的程序中转换为整数数组。然而,我现在遇到的情况是验证用户输入的字符串是否仅限于!!!包含2-9之间的数字。我已经尝试了。Contains方法和。Match方法,但是使用这些方法总是提供错误的结果。如果有人能提供一些关于如何解决这个问题,我将非常感谢。提前感谢。 以下是我目前掌握的信息: