如何打印 List<List<KeyValuepair>?

class Program

{

    static void Main(string[] args)

    {

        List<List<double>> myList = new List<List<double>>();

        myList.Add(new List<double> { 2D, 2D, 3D, 5D, 8D, 11D, 13D, 13D, 11D, 8D, 5D, 3D });

        myList.Add(new List<double> { 6D, 7D, 10D, 14D, 18D, 21D, 22D, 22D, 19D, 15D, 10D, 7D });


        List<List<KeyValuePair<string, double>>> result = new List<List<KeyValuePair<string, double>>>();


        for (int i = 0; i < myList.Count; i++)

        {

            List<KeyValuePair<string, double>> r = new List<KeyValuePair<string, double>>();


            for (int j = 0; j < myList[i].Count; j++)

            {


                r.Add(new KeyValuePair<string, double>("Values", myList[i][j]));

            }

            result.Add(r);

        }


        foreach(var element in result)

        {

            Console.WriteLine(element);

            Console.ReadLine();

        }

    }

}

我想打印列表“结果”的内容。上面的 foreach 循环不起作用。打印列表的正确方法是什么?


慕容森
浏览 207回答 3
3回答

千巷猫影

你的意思是这样吗?foreach(List<KeyValuePair<string, double>> pair in result){&nbsp; &nbsp; foreach (KeyValuePair<string, double> innerpair in pair)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(innerpair.Key + " " + innerpair.Value);&nbsp; &nbsp; }}

红糖糍粑

假设数据在内存中,您可以使用 LINQ:String.Join(Environment.NewLine,&nbsp;myList.SelectMany(l&nbsp;=>&nbsp;l.ToString()).ToArray());它的作用是在将值转换为字符串时将列表 (&nbsp;SelectMany&&nbsp;ToArray) 展平,然后使用String.Join.通过using System.Linq;在适当的部分中指定,确保您能够使用 LINQ&nbsp;。或者,您可以使用foreach迭代SelectMany结果;在这种情况下,一个foreach就足够了。

紫衣仙女

您需要在打印到控制台的代码中嵌套另一个 foreach,如下所示:foreach(var element in result) {&nbsp; &nbsp; &nbsp; &nbsp;foreach(var el in element) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine("Key: " + el.Key + ", Value: " + el.Value);&nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP