【问题标题】:How can I print tuple nested in list in c#?如何在 C# 中打印嵌套在列表中的元组?
【发布时间】:2017-05-30 08:48:00
【问题描述】:

我有一个函数来填充包含TupleList。它将字典作为参数并填充列表。

我需要这个来为文本值分配数值。

为了清关;

我有一个属性部分,其中包括假设;

属性:阴

阴天的文本值:晴天、雨天、有雾等

属性:温度

文本值:热、冷、温和

List 有数据作为属性,值作为文本,值作为数字。

我有数据部分。具有“阳光、冷”、“阳光、热”等值。

我的目标是分配数字并表达“1,2”、“1,3”等数据。 为此,我编写了一个函数。

public List<Tuple<string, string, int>> SetNumAttrb(Dictionary<string, string[]> dic)
    {
        List<Tuple<string, string, int>> attNumNom = new List<Tuple<string, string, int>>();
        int ctrl = 1;
        foreach (KeyValuePair<string, string[]> kvp in dic)
        {
            for (int i = 0; i < kvp.Value.Length; i++)
            {
                attNumNom.Add(Tuple.Create<string, string, int>(kvp.Key, dic[kvp.Key][i], ctrl));
                ctrl++;
            }
        }
        return attNumNom;
    }

现在我需要打印它以检查它是否正常工作,并且我需要访问它的内容。我怎样才能做到这一点?

【问题讨论】:

  • 我想 Visual Studio Locals 窗口是不可能的?
  • Tuple.Create 的好处是您可以省略通用参数,因此在您的情况下,您可以将 Tuple.Create(kvp.Key, dic[kvp.Key][i], ctrl) 作为 Add 方法的参数。
  • @JeppeStigNielsen 哦,我不知道。谢谢你:)

标签: c# list dictionary tuples


【解决方案1】:

这很简单。只需遍历列表并打印元组的内容。

List<Tuple<string, string, int>> list = SetNumAttrb(dict);

foreach (var tuple in list)
{
    Console.WriteLine("{0} - {1} - {2}", tuple.Item1, tuple.Item2, tuple.Item3.ToString());
}

【讨论】:

  • 虽然Console.WriteLine 内置支持这种语法,但您也可以使用插值字符串,如Console.WriteLine($"{tuple.Item1} - {tuple.Item2} - {tuple.Item3}");(注意$ 字符)。
  • 明白。再一次非常感谢你。现在对我来说重要的是访问列表中的各个项目。
  • @JeppeStigNielsen 请注意,语法只有在使用 C#6 时才有效。
【解决方案2】:

也许我理解错了,但如果你使用:

Console.WriteLine(string.Join("\r\n", attNumNom));

您将打印每个 List&lt;&gt; 项目,由 CR LF(换行符)分隔。

由于Tuple&lt;,,&gt; 覆盖ToString(),这应该是非常可读的。

【讨论】:

  • fyi,Environment.NewLine 根据您的环境反映换行符 :)
  • 这也可以用于打印,但我需要访问元组的各个元素,所以我将使用 foreach(var tuple in list) 来回答。还是谢谢你:)
  • 一个非常有趣的方法。一定要试试这个:)
猜你喜欢
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多