【问题标题】:How to get a string that is contained on an array using LinQ?如何使用 LinQ 获取包含在数组中的字符串?
【发布时间】:2017-09-28 14:52:04
【问题描述】:

我需要使用 LinQ 获取包含“xxxx.html”的数组字符串。

我有这个:

filePaths.Any(s => s.Contains("xxxx.html")

如果它包含该字符串,我会收到 true。现在我需要获取包含“xxxx.html”的字符串,但我不知道该怎么做。

谁能帮帮我?

我是一个使用 linq 的菜鸟。

【问题讨论】:

  • 您看过各种 LINQ 函数了吗?试试First()Where()
  • 另外请注意,使用 Contains() 将匹配任何作为子字符串的内容。例如,“yyyxxxx.htmlfoo”会匹配。这可能是您的应用程序中的问题,也可能不是。

标签: c# arrays linq


【解决方案1】:

你试过了吗?

var result = filePaths.FirstOrDefault(s => s.Contains("xxxx.html"));

【讨论】:

  • 这适用于返回一项或NULL(如果找不到字符串)。大概这就是OP正在寻找的。但是,如果您想要包含字符串的所有项目的 IEnumerable 集合,则可以将 FirstOrDefault() 替换为 Where()
  • 我没有使用 Where,因为如果他不知道.. 它会在未分配或执行时返回 IQueryable.. 但这样做是完全合法的。感谢您的意见:)
【解决方案2】:

您应该使用FirstFirstOrDefault(如果找不到则返回null)

filePaths.FirstOrDefault(s => s.Contains("xxxx.html"))

【讨论】:

    【解决方案3】:

    如果您希望数组中的第一项具有所需的值,您还可以使用:

    filePaths.Where(s => s.Contains("xxxx.html");
    

    将返回一个包含所有符合条件的项目的 Enumerable。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 2010-12-17
      • 2020-12-15
      • 2018-12-15
      • 2023-02-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多