如何解决如何按子字符串值对列表项进行排序? C#
订单信息:
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,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;
}
}
}
感谢你们的任何帮助:)
解决方法
请阅读问题的注释。
想象一下,您必须使用适当的数据类型来处理特定的对象。
这里是示例课:
class Order
{
public string CompanyName { get; set; }
public double Price { get; set; }
public int CountOfPieces { get; set; }
public DateTime OrderTime { get; set; }
}
您可以通过以下方式将List<string>
转换为有序的List<Order>
:
List<Order> myProperData = mylist
.Select(x=>x.Split(new string[]{" ","-","€"},StringSplitOptions.RemoveEmptyEntries))
.Select(x=> new Order()
{
CompanyName = x[0],Price = Convert.ToDouble(x[1]),CountOfPieces = Convert.ToInt32(x[2]),OrderTime = Convert.ToDateTime(x[4])
})
.OrderBy(x=>x.OrderTime) //sort orders by OrderTime!
.ToList();
您可以看到myProperData
是订单列表。您可以按照自己的方式管理数据(添加/删除/排序)。
有关更多详细信息,请参见:Classes - C# Programming Guide
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。