繁体   English   中英

Lambda表达式和类方法

[英]Lambda expression and class method

我有这样的问题。

List<Absent> absent = new List<Absent>();
Console.WriteLine("--------------------------");
Console.Write("Please enter a full name> ");
string temp_str = Console.ReadLine();


absent.Where(x => x.Name == temp_str).Run(x = x.WriteConsoleTable());

过滤后如何运行方法? 缺少的类具有Name变量和WriteConsoleTable方法。

似乎您正在寻找ForEach扩展方法,但首先需要在Where子句返回的IEnumerable序列上调用ToList

absent.Where(x => x.Name == temp_str)
      .ToList()
      .ForEach(x => x.WriteConsoleTable());

或者您可以使用foreach构造遍历集合。

foreach (var item in absent.Where(x => x.Name == temp_str))
        item.WriteConsoleTable();

您可以尝试以下选项。

var absences = absent.Where(x => x.Name == temp_str);
foreach(var abs in absences)
{
    abs.WriteConsoleTable();
}

或者,如果您确定只需要第一个比赛

var absence = absent.FirstOrDefault(x => x.Name == temp_str);
if(absence != null)
{
    absence.WriteConsoleTable();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM