需要在我的字典中获取数组项的计数
Need to get count of array items in my dictionary
我用字符串类型的键和字符串[]类型的值创建了一个字典。我很难弄清楚如何在字典中获取数组的计数。所以我知道 dict.count returns 字典对的数量,但不确定如何获取数组的计数
Dictionary<string, string[]> csvFileNameSheetName = new Dictionary<string, string[]>();
我试过了,但显然行不通
for (int idx = 0; idx < csvFileNameSheetName.Values.Count; idx++)
我需要的是 csvFilenameSheetName.values.Values.count
使用 Linq 的 SelectMany 将所有 string[]
项放入单个枚举中:
csvFileNameSheetName.SelectMany(kvp=>kvp.Value).Count(); //using System.Linq
或者为了获得更好的性能,您可以使用 Sum 来累加计数:
csvFileNameSheetName.Sum(kvp=>kvp.Value.Length); //using System.Linq
使用 linq
int c = csvFileNameSheetName.Aggregate(0, (r, i) => r = r + i.Value.Count());
int count = csvFileNameSheetName.Aggregate(0, (r, kvp) => r = r + kvp.Value.Count());
或
var count = 0;
foreach(var strArr in csvFileNameSheetName.Values)
{
count += strArr.Length;
}
我用字符串类型的键和字符串[]类型的值创建了一个字典。我很难弄清楚如何在字典中获取数组的计数。所以我知道 dict.count returns 字典对的数量,但不确定如何获取数组的计数
Dictionary<string, string[]> csvFileNameSheetName = new Dictionary<string, string[]>();
我试过了,但显然行不通
for (int idx = 0; idx < csvFileNameSheetName.Values.Count; idx++)
我需要的是 csvFilenameSheetName.values.Values.count
使用 Linq 的 SelectMany 将所有 string[]
项放入单个枚举中:
csvFileNameSheetName.SelectMany(kvp=>kvp.Value).Count(); //using System.Linq
或者为了获得更好的性能,您可以使用 Sum 来累加计数:
csvFileNameSheetName.Sum(kvp=>kvp.Value.Length); //using System.Linq
使用 linq
int c = csvFileNameSheetName.Aggregate(0, (r, i) => r = r + i.Value.Count());
int count = csvFileNameSheetName.Aggregate(0, (r, kvp) => r = r + kvp.Value.Count());
或
var count = 0;
foreach(var strArr in csvFileNameSheetName.Values)
{
count += strArr.Length;
}