【问题标题】:Sort Arrays inside an array, C#对数组中的数组进行排序,C#
【发布时间】:2016-04-19 17:52:18
【问题描述】:
|身份证 |描述 |优先 | |:-----------|------------:|:------------:| | 1 | aabc |优先级1 | 2 | xyz |优先级3 | 3 |联邦银行 |优先级5 | 4 | fg |优先级2 | 5 | xdr |优先级4 | 6 | pqr |优先级1

您好,我上面的表格以数组的形式存储。

Array[] Values;


Values[0]={'ID','Desc','Priority'};
Values[1]={'1','aabc','Priority1'};
Values[2]={'2','xyz','Priority3'};
Values[3]={'3','cba','Priority5'};

现在我必须根据优先级对值进行排序,以便我的结果如下。

Values[0]={'ID','Desc','Priority'};
Values[1]={'1','aabc','Priority1'};
Values[2]={'4','fg','Priority2'};
Values[3]={'2','xyz','Priority3'};

帮我用 C# 编写代码

【问题讨论】:

  • Array 类型是什么。有什么定义吗?
  • 这实际上是 LINQ 中的一行。你试过什么吗?
  • msdn.microsoft.com/en-us/library/bb383982.aspx ,正如@InBetween 所说,将优先级作为字符串确实不是一个好主意
  • 为您的表创建一个类。不要使用这样的数组。因为没有类型安全性或关于您如何表示数据的任何信息。这会使您的程序难以理解,并且可能会成为真正的错误。

标签: c# .net arrays sorting


【解决方案1】:
using System.Linq;

Values.OrderBy(a => a[2]);

如果没有更多上下文,我们无法确定,但 Values 看起来很可怕。为什么不使用int 来定义优先级?

【讨论】:

    【解决方案2】:

    如果你真的有一个 DataTable 那就试试这个

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    
    namespace ConsoleApplication66
    {
        class Program
        {
            static void Main(string[] args)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("ID", typeof(int));
                dt.Columns.Add("Desc", typeof(string));
                dt.Columns.Add("Priority", typeof(string));
    
                dt.Rows.Add(new object[] {1, "aabc", "Priority1"});     
                dt.Rows.Add(new object[] {2, "xyz", "Priority3"});     
                dt.Rows.Add(new object[] {3, "cba", "Priority5"});     
                dt.Rows.Add(new object[] {4, "fg", "Priority2"});     
                dt.Rows.Add(new object[] {5, "xdr", "Priority4"});     
                dt.Rows.Add(new object[] {6, "pqr", "Priority1"});
    
                DataTable results = dt.AsEnumerable()
                    .OrderBy(x => x.Field<string>("Priority"))
                    .CopyToDataTable();
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 1970-01-01
      • 2011-04-23
      • 2013-12-24
      • 2013-08-05
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 2021-11-18
      相关资源
      最近更新 更多