c# - 迭代元组中的项目

标签 c# loops tuples console-application

我有一个包含三个循环的方法:

    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);
        }
    }

是否可以只使用一个循环将列表中的所有项目打印到屏幕上?

最佳答案

当然,您可以将所有列表连接成一个 objectstring 项序列,但这种连接不会使您的代码更具可读性。但是您可以创建简单的扩展方法,将任何序列的内容转储到控制台:

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/

相关文章:

c# - 在 C# 中使用 Javac?

Java for 循环[方法]

grails createCriteria 如何循环限制

algorithm - 探索一种算法以找到包含某些项目的最小链

c# - 如何使用最新版本的 C# (1.8.2+) 驱动程序获取 MongoCursorEnumerator<T>?

c# - LINQ 查询 - 最近的相邻日期

java - 如何创建这个循环,使输出与输入相同,除非我按 "end"然后程序结束?

python - 如何在Python中将多个 "listed"元组连接成一个元组?

c++ - 在类方法上使用 std::apply

c# - Jssor Sliders 过渡不起作用