【问题标题】:Finding all Elements in a List that Contain a Certain Last Name [duplicate]查找列表中包含某个姓氏的所有元素[重复]
【发布时间】:2025-12-08 10:00:01
【问题描述】:

我正在尝试删除列表中包含 C# 中某个姓氏的所有项目。

我真的没有任何代码可以显示,因为我一直在研究如何做到这一点,我无法在任何地方找到解决方案。

输入格式为“First Last”,我无法更改。

    List<string> people = new List<string>();
    people.Add("Tommy Chan");
    people.Add("Taylor Chan");
    List<string> contain = new List<string>();
    foreach (string s in people)
    {
        if (s.Contains("Chan"))
        {
            //Remove Item from list here
            Console.WriteLine("Removed");
        }
        else
        {
            Console.WriteLine("Doesn't Contain Chan");
        }
   }
   Console.ReadKey();

这只是需要一个项目,它需要一个人名列表并按姓氏对他们进行分组,从而能够删除所有具有特定姓氏的人。我似乎找不到任何可以通过在列表中找到一定数量来搜索整个列表的地方。我发现了很多不同的循环,但它们都要求它与整个字符串完全匹配。

谢谢

【问题讨论】:

  • 创建一个具有FirstNameLastName 属性的对象。制作该类的列表而不是字符串列表。分别填充名字/姓氏字段。这将使过滤和分组变得更加容易。
  • 输入在“First Last”函数中,这只是一个测试功能的模型。它必须同时删除名字和姓氏。基于姓氏。 @艾米
  • 应该是"s.Contains" if (s.Contains("Chan"))
  • @ssilas777 在我的鳕鱼中修复了它,但问题仍然存在
  • 标记为重复,但问题的范围与声明为重复的问题不同...该问题是关于可以使用 string.Contains 检索的子字符串(字符串中的任何位置)但这是关于 string.Contains 不会真正起作用的字符串中的最后一个单词!

标签: c# list


【解决方案1】:

我建议使用 Linq:

var filteredList = people.Where(p => p.EndsWith(" Chan")).ToList();

【讨论】:

    最近更新 更多