【发布时间】:2016-03-31 11:15:58
【问题描述】:
我有一个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() 方法将向用户公开。用户只需以线性格式写下语句,每条语句都会针对列表中的每个元素重复。
我怎样才能做到这一点?
【问题讨论】:
-
你可以尝试使用递归,因为现在内存很便宜......
-
直接使用 List.Foreach
-
foreach有什么问题? -
@TimSchmelter,
Do()将向用户公开。我希望这种方法看起来干净且线性。 -
@Liren:还不清楚。如果您不希望
Do具有参数,但该方法仍然可以访问列表,那么在Do中使用foreach有什么反对意见? 用户 看不到实现。此外,foreach是一种非常简洁的方式来完全枚举列表。
标签: c# list foreach encapsulation