C# 类元素的排序列表
我有一个这样的唱片班:C# 类元素的排序列表,c#,class-members,C#,Class Members,我有一个这样的唱片班: public class RecordInfo { public String CDate; public String Patient_ID; public Color Zone; public String Fname; public String Lname; public Int64 ImgSize; public String ImagePrefix; public String ImagePath
public class RecordInfo
{
public String CDate;
public String Patient_ID;
public Color Zone;
public String Fname;
public String Lname;
public Int64 ImgSize;
public String ImagePrefix;
public String ImagePath;
public String Sex;
public String TZ;
}
List<RecordInfo> PatientRecords = new List<RecordInfo>();
我列出了一个记录信息列表,如下所示:
public class RecordInfo
{
public String CDate;
public String Patient_ID;
public Color Zone;
public String Fname;
public String Lname;
public Int64 ImgSize;
public String ImagePrefix;
public String ImagePath;
public String Sex;
public String TZ;
}
List<RecordInfo> PatientRecords = new List<RecordInfo>();
List PatientRecords=new List();
我在列表中添加了记录,但我想根据患者ID、性别、姓名等对列表进行排序
你知道我该怎么做吗?当然可以,使用起来很方便,而且:
//注意命名约定从Patient_ID更改为PatientId。
List sorted=records.OrderBy(x=>x.PatientId.ToList();
这将创建一个新列表——LINQ基于将一个序列投影到新序列上的查询,而不是对现有列表进行修改
或者,您可以使用自定义比较器进行就地排序
无论哪种方式,我强烈建议使用属性而不是公共字段,并遵循.NET命名约定。当然,使用起来很方便,而且:
//注意命名约定从Patient_ID更改为PatientId。
List sorted=records.OrderBy(x=>x.PatientId.ToList();
这将创建一个新列表——LINQ基于将一个序列投影到新序列上的查询,而不是对现有列表进行修改
或者,您可以使用自定义比较器进行就地排序
无论哪种方式,我强烈建议使用属性而不是公共字段,并遵循.NET命名约定。这些记录指的是什么?因为我试着用录音带代替它,但是没有work@R.Vector,
它不起作用了
?你能把它翻译成英文吗?从软件开发人员的角度来看,而不是从软件用户的角度来看。@R.Vector:记录的原始列表。我没有使用名称PatientRecords
,因为这不是一个好的局部变量名称。正如Darin所说,“它不起作用”并不是对你所看到的东西的清晰描述。@R.Vector:你说你用PatientRecords
-它不会在事后给出错误…使用System.Linq添加
到文件的顶部,以将定义了OrderBy
扩展方法的名称空间带到该名称空间中。记录引用的是什么?因为我试着用录音带代替它,但是没有work@R.Vector,它不起作用了
?你能把它翻译成英文吗?从软件开发人员的角度来看,而不是从软件用户的角度来看。@R.Vector:记录的原始列表。我没有使用名称PatientRecords
,因为这不是一个好的局部变量名称。正如Darin所说,“它不起作用”并不是对你所看到的东西的清晰描述。@R.Vector:你说你用PatientRecords
-它不会在事后给出错误…使用System.Linq添加
位于文件顶部,以将定义了OrderBy
扩展方法的名称空间带到该名称空间中。