【问题标题】:Sort Data Descending [duplicate]对数据进行降序排序[重复]
【发布时间】:2013-08-13 18:34:46
【问题描述】:

我有以下从两个textbox 检索到的数据。我想按时间降序排序。我尝试使用字典,但无法插入重复值。有什么想法吗?

ID     time                             ID       time
4       10                              15        19       
12      13      WANT SORTED BY TIME     12        13
15      19      ---->>                  12        13
4       10                              4         10 
12      13                              4         10

【问题讨论】:

  • 数据在到达文本框之前来自哪里?数据库查询?一些对象?
  • 字典不能包含重复的键,因此替代方法称为查找msdn.microsoft.com/en-us/library/bb460184.aspx
  • 您可以拥有一个 List 并实现自己的 IComparer 以获得简单的解决方案。
  • @RQDQ 屏幕上有很多按钮,只要用户点击按钮,就会将它们放在多行文本框中。我从文本框中提取数据并遍历文本框中的每一行,然后我使用数据库查询它获取 ID 和时间。之后我需要对它们进行排序。
  • @JBKing 我该怎么做。

标签: c# sorting


【解决方案1】:

字典不允许重复键,所以这不是您想要的,因为您的 ID 值显然不是唯一键值。

创建一个类来保存您的数据,然后使用 Linq 的 OrderByDescending 对其进行排序:

public class MyTimeData {
   public int ID { get; set; }
   public int Time { get; set; }
}

var list = new List<MyTimeData>();
// Add items to the list
list = list.OrderByDescending(d => d.Time).ToList();

【讨论】:

  • 我是新手,如何将我的值从另一个表单添加到该类中
  • List tmp = new List(); tmp.add(new MyTimeData{Id=1, Time = DateTime.Now} );
  • @Apollo - 如果你的目标是学习如何编程,你真的应该付出一些努力。
  • @mbeckish 我正在努力学习,我尝试使用 Dictionary 和 Lists,但从未想过我可以将它与另一个类似的类一起使用。
  • 感谢您的帮助,我今天学到了一些新东西。你能为我的问题 +1 有人投票否决我,我不知道为什么。
【解决方案2】:
yourList.OrderByDescending(x => x.Time);

【讨论】:

  • 我知道如何排序,如果我对一个列表进行排序,它不会对另一个列表进行排序
  • 当你说“其他”时,它是同一个对象的一部分吗?您可以通过调用“.ThenByDescending(x=>x.ID)”来链接它
【解决方案3】:

另一个选项,如果 LINQ 不可用或您感兴趣的东西,是 SortedList 数据结构(您可以颠倒顺序使其降序,因为它默认为升序),您可以像这样使用这个:

public class MyTimeData {
    public int ID { get; set; }
    public int Time { get; set; }
}

var list = new SortedList<MyTimeData>();

// Add items to sorted list

// Reverse to make it descending
var listDescending = list.Reverse();  

foreach (var item in listDescending)
{
    // Do something with item
}

【讨论】:

    猜你喜欢
    • 2020-07-18
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    相关资源
    最近更新 更多