【发布时间】:2021-01-20 03:32:39
【问题描述】:
我有一个包含一些订单信息的列表
订单信息:
STORAGEA ----- 2,311 € ----- 8 PCS ----- 08:55:02.933
COMPANYX ----- 6,435 € ----- 80 PCS ----- 08:59:07.751
FACTORYT ----- 22,20 € ----- 80 PCS ----- 08:45:04.686
您可以看到我的列表项没有正确排序,因为订购时间是混合的
期望的输出是:
FACTORYT ----- 22,20 € ----- 80 PCS ----- 08:45:04.686
STORAGEA ----- 2,311 € ----- 8 PCS ----- 08:55:02.933
COMPANYX ----- 6,435 € ----- 80 PCS ----- 08:59:07.751
我当前的代码:
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, EventArgs e)
{
List<string> mylist = new List<string>(new string[] { "STORAGEA ----- 2,311 € ----- 8 PCS ----- 08:55:02.933",
"COMPANYX ----- 6,435 € ----- 80 PCS ----- 08:59:07.751",
"FACTORYT ----- 22,20 € ----- 80 PCS ----- 08:45:04.686" });
listBox1.DataSource = mylist;
}
}
}
感谢你们的帮助:)
【问题讨论】:
-
您应该做的第一件事是将字符串解析为具有每个子字符串的单独属性的适当类(并使用适当的类型,例如
DateTime用于时间和decimal用于花费)。然后您就可以轻松地使用 Linq 的OrderBy()和(如有必要)ThenBy()来获得您想要的订单。 -
马修·沃森是对的。即使你可以使用这样的东西:
mylist = mylist .OrderBy(x=> Convert.ToDateTime(x.Substring(x.Length-12, 12))) .ToList();- 这不是对数据进行排序的正确方法。根据 Matthew 的评论创建自定义类。
标签: c# arrays arraylist foreach listitem