0
データの特定の項目にドリルダウンして、結果のリストを出力ウィンドウに出力したいとします。私のクエリの結果は、このLINQクエリ結果の特定のデータをドリルダウンするにはどうすればよいですか?
private IEnumerable<DataRow> _data;
var query = from data in this._data
group data by data.Field<string>("Form Name") into groups //same as Form ID
select new
{
formName = groups.Key,
items = from d in groups
group d by d.Field<string>("Item Name") into grps
let name = grps.Key
let documentIDGroups = grps.GroupBy(t => t.Field<string>("Document ID"))
let documentIDGroupsCount = documentIDGroups.Count()
let distinctDocumentValueCount = from data in documentIDGroups
select new
{
docID = data.Key,
distinctDocValueCount = data.Where(t => string.IsNullOrEmpty(t.Field<string>("Document Value").Trim()) == false).Select(t => t.Field<string>("Document Value")).Distinct().Count()
}
let sum = distinctDocumentValueCount.Sum(t => t.distinctDocValueCount)
let distinctItemsNames = from data in grps
select data.Field<string>("Item Name").Distinct().Count()
let count = distinctItemsNames.Count()
select new
{
itemName = name,
documentIDGroups,
documentIDGroupsCount,
averageChoices = Math.Round(((decimal)sum/documentIDGroupsCount), 2),
distinctDocumentValueCount,
sum
}
};
だからそのクエリの結果に、私は特定のフォーム名にドリルダウンしたいように見えますし、そこから特定のアイテム名を取得し、その
にその最初のステップはにありますアイテムのグループ化を取得すると私は持っている
しかし、私はどのように特定の文字列で項目を分離するのか分からない。 私は、次の
var item = from d in items where d.itemName == "anItemName" select d;
をしたいしかし、私は構文を知りません。
[OK]をおかげで、VaRのフォーム=次のwueryで? – erotavlas
一般的注意:*正確に* 1のアイテムが必要で、複数のアイテムを取得している場合、または '0'がエラーになる場合は、 '.FirstOrDefault'の代わりに' .First'を使用してください。 –
@erotavlas私はあなたが名前でそれらを分離することによって何を意味するかを正確にはわかりません。名前だけを選択しますか?同じ名前のアイテムがすべて欲しいですか? – akerra