我有一个包含三个循环的方法:
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);
}
}
是否可以只使用一个循环将列表中的所有项目打印到屏幕上?
最佳答案
当然,您可以将所有列表连接成一个 object
或 string
项序列,但这种连接不会使您的代码更具可读性。但是您可以创建简单的扩展方法,将任何序列的内容转储到控制台:
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();
}
我还会使用命名参数、自定义类型或值元组将这三个值传递给方法。
关于c# - 迭代元组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47197275/