簡體   English   中英

C# 列表元組編碼練習

[英]C# List Tuple Coding exercise

我是 Tuple 對象的新手。 我面臨一個 C# 元組編碼練習,不知道該怎么做。 有人可以給我一些建議或想法,我可以用作練習的起點嗎? 老實說,我什至不知道如何開始。 問題類似於以下:

  • 將有一個List< Tuple<int,int> >變量,其中包含[[1,2],[2,3],[4,5]]
  • 因為 int 2存在第一個元組元素和第二個元組元素中,它會自動將第一個元組元素和第二個元組元素組合在一起,將它們合並到一個列表中。
  • 目標是返回 2 個列表變量:
    • [1,2,3]在第一個列表中
    • [4,5]在第二個列表中。
  • 該列表從最大到最小列表大小為 output,但如果列表大小相等,則按第一個列表的元素從較小的 int 到較大的 int 排序。

例子:

Input: [[0,1],[0,5],[2,3],[3,4],[4,6]]
Output:
    1st list: [2,3,4,6]
    2nd list: [0,1,5]

有人可以告訴我如何開始嗎?

非常感謝。

這是一個應該這樣做的快速示例:

static void Main(string[] args)
{
    List<Tuple<int, int>> input = new List<Tuple<int, int>>();
    input.Add(new Tuple<int, int>(0, 1));
    input.Add(new Tuple<int, int>(0, 5));
    input.Add(new Tuple<int, int>(2, 3));
    input.Add(new Tuple<int, int>(3, 4));
    input.Add(new Tuple<int, int>(4, 6));

    List<int> current = new List<int>();
    List<List<int>> output = new List<List<int>>();
    foreach(Tuple<int, int> T in input)
    {
        if (current.Count == 0 || current.Contains(T.Item1) || current.Contains(T.Item2))
        {
            current.Add(T.Item1);
            current.Add(T.Item2);
        }
        else
        {
            current.Sort();
            output.Add(current.Distinct().ToList());
            current = new List<int>();
            current.Add(T.Item1);
            current.Add(T.Item2);
        }
    }
    if (current.Count > 0)
    {
        current.Sort();
        output.Add(current.Distinct().ToList());
    }

    foreach(List<int> set in output)
    {
        Console.WriteLine($"[{String.Join(",", set)}]");
    }
    Console.Write("Press Enter to Quit");
    Console.ReadLine();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM