在ASP.NET C#中,我有一个结构:
public struct Data
{
public int item1;
public int item2;
public int category_id;
public string category_name;
}
我有一个清单。我要选择category_id
和category_name
,运行的DISTINCT
最后一个ORDERBY
上category_name
。
这是我现在所拥有的:
List<Data> listObject = getData();
string[] catNames = listObject
.Select(i=> i.category_name)
.Distinct()
.OrderByDescending(s => s)
.ToArray();
这显然只是获得类别名称。我的问题是,如何获取多个字段,以及将其存储在什么数据结构中(而不是string[]
)?
编辑
使用结构列表并不是一成不变的。如果建议更改我的支持数据结构以使选择更容易(我将编写很多此类记录),那么我很乐意提出建议。
10
尽管它与LINQ无关,但我强烈建议您不要使用可变结构或公共字段。就我个人而言,我很少首先创建结构,但是可变结构只是自找麻烦。
—
乔恩·斯基特
@乔恩·斯基特谢谢。我将其转换为具有私人成员的普通班。
—
切特
@Midhat:可变结构会导致各种问题,因为它们的行为不像人们期望的那样。公共领域完全缺乏封装。
—
乔恩·斯基特
@乔恩·斯基特 您能更具体地说明可变结构的陷阱吗,还是请您参考一下。
—
Midhat的
—
乔恩·斯基特