[英]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.