我有三个循环的方法:
public void Print(Tuple<List<DateTime>, List<double>, List<string>> dataToPrint)
{
foreach (var item in dataToPrint.Item1)
{
Console.WriteLine(item);
}
foreach (var item in dataToPrint.Item2)
{
Console.WriteLine(item);
}
foreach (var item in dataToPrint.Item3)
{
Console.WriteLine(item);
}
}
是否可以只使用一个循环来打印屏幕上列表内容的所有项目?
解决方法:
当然,您可以将所有列表连接成一个对象或字符串项目序列,但这种串联不会使您的代码更具可读性.但您可以创建简单的扩展方法,将任何序列的内容转储到控制台:
public static void Dump<T>(this IEnumerable<T> source)
{
foreach(var item in source)
Console.WriteLine(item);
}
你的代码看起来像(根本没有循环):
public void Print(Tuple<List<DateTime>, List<double>, List<string>> dataToPrint)
{
dataToPrint.Item1.Dump();
dataToPrint.Item2.Dump();
dataToPrint.Item3.Dump();
}
我还将使用命名参数,自定义类型或值元组将这三个值传递给方法.