搜索对象列表

时间:2014-05-19 04:56:40

标签: c# list class object

我有一个这样的课。

       class man    
      {
        public string name { get; set; }
        public string mail { get; set; }
       }

我有一个像这样的列表

List<man> ppl = new List<man>();

我想搜索一个名字为#34; Nimal&#34;在列表中删除该男子。怎么做?

4 个答案:

答案 0 :(得分:2)

List.RemoveAll Method

怎么样?
  

删除符合条件定义的所有元素   指定的谓词。

arts.RemoveAll(x => x.name == "Nimal");

答案 1 :(得分:0)

如果你想删除列表中的第一个:

if(arts.Any(x => x.name == "Nimal"))
{
arts.Remove(arts.FirstOrDefault(x => x.name == "Nimal"));
}

如果你想删除条件匹配的所有条目,你可以这样做:

if(arts.Any(x => x.name == "Nimal"))
{
arts.RemoveAll(x => x.name == "Nimal");
}

答案 2 :(得分:0)

var Filtered= ppl.FirstOrDefault(a => a.Name == "Nimal");
var finalresult= ppl.Except(Filtered).ToList();

答案 3 :(得分:0)

如果您想要第一次出现该名称,请以checkout @astander回答:

 var firstMatch = ppl.First (p => p.Name == "Nimal");
 ppl.Remove (firstMatch);

如果您更喜欢for循环和if-condition,您可以执行以下操作:

for (int i = 0; i < ppl.Count; i++)
{
      man m = ppl[i] as man;

      if(m.Name.ToLower() == "nimal")
          ppl.Remove(m);
}