在void transposarMatriu(char matriu_ori[][T_DIM_MAX], char *matriu_dst[][T_DIM_MAX], int nfiles, int ncols) {
...
个具有许多属性的对象中,每个对象都具有三个不同的属性,RegionID,DistrictID和SuburbID,我想从每个对象中提取它们并将它们放入一个单独的列表中。 RegionID的类型为List
,DistrictID和SuburbID的类型为long
。我想要将这三个属性提取到类型为long?
的单个不同列表中的最快,最简单的方法。
以下方法有效,但看起来不太优雅:
long?
我可以使用单个List<long> regionIDsLong = objectList.Select(x => x.RegionID).ToList();
List<long?> regionIDs = regionIDsLong.Cast<long?>().ToList();
List<long?> districtIDs = objectList.Select(x => x.DistrictID).ToList();
List<long?> suburbIDs = objectList.Select(x => x.SuburbID).ToList();
List<long?> locationIDs = regionIDs.Concat(districtIDs).Concat(suburbIDs).Distinct().ToList();
或Select
语句或类似的语句吗?
答案 0 :(得分:1)
这应该可行,并且要短一些。它为该类的每个实例创建一个数组,然后将它们展平并将不同的值转换为列表。
List<long?> locationIds = objectList.Select(x => new[] { x.RegionID, x.DistrictID, x.SuburbID })
.SelectMany(x => x).Distinct().ToList();