【问题标题】:How do I search for a string in a list?如何在列表中搜索字符串?
【发布时间】:2014-01-15 11:20:06
【问题描述】:

我不知道如何返回包含标题中字符串的所有声音片段的列表。

    fragmenten = new List<Geluidsfragment>();
    public List<Geluidsfragment> GetFragment(String p)
    {
        fragmenten.IndexOf(p);            
    }

希望你们能帮我解决这个问题。

【问题讨论】:

    标签: c# string list


    【解决方案1】:

    你可以使用List.FindAll:

    List<Geluidsfragment> result = fragmenten.FindAll(f => f.Title.Contains(title));
    

    另一个选项是 LINQ 的 Enumerable.WhereEnumerable.ToList

    result = fragmenten.Where(f => f.Title.Contains(title)).ToList();
    

    【讨论】:

    • @user3197825,别忘了标记解决您问题的答案,以便其他有类似问题的人能够更快地找到解决方案。
    【解决方案2】:

    假设你有一个string Title 属性:

    return fragmenten.Where(f => f.Title.Contains(p)).ToList();
    

    您可能需要将此添加到文件的 using 部分:

    using System.Linq;
    

    【讨论】:

    • 这是您的代码给出的:错误 1 ​​'System.Collections.Generic.List' 不包含 'Where' 的定义并且没有扩展方法 'Where' 接受第一个可以找到“System.Collections.Generic.List”类型的参数(您是否缺少 using 指令或程序集引用?) E:\School\SE12\SE12-PracticumopgaveGeluidsfragment\GeluidsfragmentProject\BGExperience.cs 62 27 GeluidsfragmentProject
    • @user3197825 将using System.Linq; 添加到您的代码文件中。 Where 是该命名空间中定义的扩展方法
    • System.Linq 不工作。错误 1 ​​命名空间“System”中不存在类型或命名空间名称“Linq”(您是否缺少程序集引用?)
    • @user3197825 您使用的是什么 .net 框架版本?如果是 2.0,则使用 Tim 提供的解决方案
    • @user3197825,在项目属性窗口中
    【解决方案3】:

    试试这个

    List<Geluidsfragment> requiredList = fragmenten.Where(x => x.Title.Contains(p)).ToList();
    

    【讨论】:

      【解决方案4】:
      yourlist.Where(x => x.property.Contains(value)).ToList();
      

      【讨论】:

        【解决方案5】:

        LINQ 是 lambda 表达式的最佳选择。

        你可以像这样使用它:-

        fragmenten.Where(s => s.Title.Contains(title)).ToList()

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-12
          • 2020-09-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多