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 循环不起作用。打印列表的正确方法是什么?
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
你的意思是这样吗?
foreach(List<KeyValuePair<string, double>> pair in result)
{
foreach (KeyValuePair<string, double> innerpair in pair)
{
Console.WriteLine(innerpair.Key + " " + innerpair.Value);
}
}
红糖糍粑
TA贡献1815条经验 获得超6个赞
假设数据在内存中,您可以使用 LINQ:
String.Join(Environment.NewLine, myList.SelectMany(l => l.ToString()).ToArray());
它的作用是在将值转换为字符串时将列表 ( SelectMany
& ToArray
) 展平,然后使用String.Join
.
通过using System.Linq;
在适当的部分中指定,确保您能够使用 LINQ 。
或者,您可以使用foreach
迭代SelectMany
结果;在这种情况下,一个foreach
就足够了。
紫衣仙女
TA贡献1839条经验 获得超15个赞
您需要在打印到控制台的代码中嵌套另一个 foreach,如下所示:
foreach(var element in result) {
foreach(var el in element) {
Console.WriteLine("Key: " + el.Key + ", Value: " + el.Value);
}
}
- 3 回答
- 0 关注
- 206 浏览
添加回答
举报
0/150
提交
取消