【问题标题】:How can I get the unique values of an array in .net?如何在 .net 中获取数组的唯一值?
【发布时间】:2010-09-10 03:23:54
【问题描述】:

假设我有这个数组: MyArray(0)="aaa" MyArray(1)="bbb" MyArray(2)="aaa"

是否有 .net 函数可以为我提供唯一值?我想要这样的东西作为函数的输出: OutputArray(0)="aaa" OutputArray(1)="bbb"

【问题讨论】:

    标签: .net arrays unique


    【解决方案1】:

    您可以使用字典将它们与键一起添加,并在添加它们时检查键是否已存在。

    string[] myarray = new string[] { "aaa", "bbb", "aaa" };
                Dictionary mydict = new Dictionary();
                foreach (string s in myarray) {
                    if (!mydict.ContainsKey(s)) mydict.Add(s, s);
                }

    【讨论】:

      【解决方案2】:

      使用 .NET 3.5 中包含的 HashSet 类。

      【讨论】:

        【解决方案3】:

        一种解决方案可能是使用 LINQ,如下例所示:

        int[] test = { 1, 2, 1, 3, 3, 4, 5 };
        var res = (from t in test select t).Distinct<int>();
        foreach (var i in res)
        {
            Console.WriteLine(i);
        }
        

        这将打印预期的:

        1
        2
        3
        4
        5
        

        【讨论】:

          【解决方案4】:

          假设您有 .Net 3.5/LINQ:

          string[] OutputArray = MyArray.Distinct().ToArray();
          

          【讨论】:

            猜你喜欢
            • 2014-11-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-05-11
            • 2012-06-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多