我有List<DrivingData> dataList = new List<DrivingData>()
,其中
public class DrivingData
{
public string Id { get; set; }
public string Name { get; set; }
public string Age { get; set; }
}
List
必须像这样使用:
foreach (var data in dataList)
{
//Do stuffs with data.Id
//Do stuffs with data.Name
//Do stuffs with data.Age
}
但我想要相当于上面的内容,而没有显示foreach
循环,如下所示:
public void Do()
{
//Without foreach, but all statements will be repeated for each data in the List
Console.WriteLine(data.Id + data.Name + data.Age);
DoSomethingElse(data.Name);
DoMoreStuffs(data.Age);
}
将为用户公开此Do()
方法。用户只需以线性格式记下语句,每个语句将重复列表中的每个元素。
我怎样才能做到这一点?
答案 0 :(得分:1)
您可以在foreach循环的每次迭代中调用Do
方法:
public void SomeMethod ()
{
foreach (var data in dataList)
{
Do(data);
}
}
public void Do (DrivingData data)
{
Console.WriteLine(data.Id + data.Name + data.Age);
}
这样,您可以将您的逻辑放入Do
方法中,而无需关心实际上有多个项目。而另一种方法中的foreach循环将负责为每个项调用Do
方法。
答案 1 :(得分:0)
您可以改为使用List<T>.ForEach
:
public void Do()
{
var dataList = new List<DrivingData>();
dataList.ForEach(d => Console.WriteLine(d.Id + d.Name + d.Age));
}