c# - 如何通过 StartsWith 或包含搜索值查找列表中的第一个或最后一个字符串而不添加到另一个列表

标签 c# .net string list startswith

我正在尝试了解我可以使用哪些变体来获取第一行或最后一行带有 ContainsStartsWith 的字符串,其中包含搜索值或以它开头.但是没有创建新列表并从那里获取第一行或最后一行,结果实际上是这个问题的答案,但我想知道是否有可能直接从列表中获取它,例如,如果列表内容是:

  List<string> list = new List<string>()
            {
                "data file collection k"
                "file name collection l",
                "file data collection m",
                "name data collection a",
                "name data collection b",
                "data name collection c",
                "data file collection d"
            };

和搜索词:

string val = "name";

所以这样:

foreach (string str in List) 
{ 
     if (str.StartsWith(val)) 
     { 
         // ...
     } 
}

结果是:

name data collection a
name data collection b

或者如果查找整个字符串内容,例如:

  var mtchVal = list.Where(stringToCheck => stringToCheck.Contains(val)); 

结果是:

file name collection l
name data collection a
name data collection b
data name collection c

但是 StartsWith 的期望结果必须是:

name data collection a

和整个内容:

file name collection l

最佳答案

如果允许 linq 则

    var list = new List<string>();
    var first = list.FirstOrDefault(s => s.StartsWith("name"));
    var last = list.LastOrDefault(s => s.StartsWith("name"));

关于c# - 如何通过 StartsWith 或包含搜索值查找列表中的第一个或最后一个字符串而不添加到另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44339883/

相关文章:

c# - 身份框架用户锁定

c# - 对于 .Net Native C# 应用程序,无法通过 WACK 测试并避免 ILT005 错误

c# - 从字符串开始的第二行开始 - 直到

Java 8 UTF-16 不是默认字符集,而是 UTF-8

c# - 从包含小数点和逗号毫秒分隔符的字符串转换为 DateTime

c# - 创建一个 PowerShell 管道以在 C# 中读取异步

c# - 将外部 .exe 烘焙到 C# 项目中

c# - GUIText 已弃用,那么我应该使用什么来代替它呢?

c# - 如何 'not' Entity Framework 的 lambda 表达式

c# - 绘图应用程序使用哪种设计模式