Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据变量编号对列表进行排序_C#_String_List_Sorting_Contains - Fatal编程技术网

C# 如何根据变量编号对列表进行排序

C# 如何根据变量编号对列表进行排序,c#,string,list,sorting,contains,C#,String,List,Sorting,Contains,我创建了一个列表,该列表具有可变值。我想按变量值对列表进行排序 我需要的顺序被设置为减少顺序和添加文本框 ST81990、07051993、01012001等值,但正在更改 string stName = null; string stSurname = null; int stBirthday = 0; ArrayList myList = new ArrayList(); private void backgroundWorker1_DoWork(object sender, DoWork

我创建了一个列表,该列表具有可变值。我想按变量值对列表进行排序

我需要的顺序被设置为减少顺序和添加文本框 ST81990、07051993、01012001等值,但正在更改

string stName = null;
string stSurname = null;
int stBirthday = 0;
ArrayList myList = new ArrayList();

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
    for (int i = 0; i < 5; i++)
        myList.Add(stName + stSurname + stBirthDay);
}
private void List_Click(object sender, EventArgs e)
{
    for (int i = 0; i < 5; i++)
        textBox1.Text += myList[i];
}
我想这样分类

"Gregory" + "Elliott" + 28071997
"Kristopher" + "Bridges" + 11231998
"Olive" + "Higgins" + 05122001
"Johnnie" + "Black" + 03041993

按StBirth值排序=28071997>11231998>05122001>03041993

在排序前转换为日期,然后您将得到预期的结果,目前您正在对整型进行排序,鲁弗斯提供的解决方案是最佳解决方案。C是面向对象的。您可以使用字符串实现同样的功能,使用linq表达式和正则表达式进行排序,但这真的很尴尬。对列表排序后,您可以执行以下操作:

公共阶层人士 { 公共字符串名{get;set;} 公共字符串LastName{get;set;} 公共日期时间出生日期{get;set;} } var people=新列表; /*添加人来到这里*/ //分类 var orderedPeople=people.OrderByDescendingperson=> 出生日期; textBox1.Text=String.Join, 从p到orderedPeople 选择p.FirstName+p.LastName+p.DateOfBirth.ToString Dmmyyyy ;
不要使用ArrayList。它已经被弃用很长时间了。列表更好。此外,您可能应该使用一个自定义类来保存相关数据,比如公共类Person{public string FirstName{get;set;}public string Last Name{get;set;}public DateTime DateOfBirth{get;set;},然后您可以创建一个var people=new List;一旦创建了它,您就可以执行以下操作:var orderedPeople=people.orderbygenderingperson=>person.DateOfBirth.ToList;如果没有一个例子来说明如何完成您的建议,这不是一个很好的答案,因为它引出了下一个问题,如何将int转换为DateTime?。考虑添加代码示例或将其移动到注释部分。
"Gregory" + "Elliott" + 28071997
"Kristopher" + "Bridges" + 11231998
"Olive" + "Higgins" + 05122001
"Johnnie" + "Black" + 03041993