这是回答一般问题的具体问题。我正在尝试使用数据集组(这是从SQL查询中提取的)。
例如,我试图查找是否存在包所需的所有文件。
这是我的数据集:
Package FilePath
Package1 fp1
Package1 fp2
Package2 fp3
Package2 fp4
...
我希望我的结果是:
Package filesExist
Package1 true
Package2 false
检查文件不是我的问题。
我在询问如何使用数据集中的组。
谢谢。
答案 0 :(得分:0)
所以你有一系列具有至少两个属性Package
和FilePath
的对象,如果所有文件都是FilesExists
,你想要一个具有属性Package
的对象的结果序列存在。
首先按包对数据集进行分组:
var groupsWithSamePackage = dataset.GroupBy(
data => data.Package, // make groups with same Package as Key
data => data.FilePath); // each group has FilePath as members
结果是一系列组,其中每个组都有一个带有Package值的Key,组中的所有项都是数据集中具有此Key的元素的FilePath:
key = Package1, items = {fp1, fp2},
key = Package2, items = {fp3, fp4},
key = ..., items = all FilePaths with Package equal to key,
第二步是检查每个组以查看该组中是否存在所有FilePath:
var result = groupsWithSamePackage
.Select(group => new
{
Package = group.Key,
FilesExist = group.All(groupItem => FileExist(groupItem)
});
完成,简单的纪念活动!