在LINQ中,可以使用GroupBy
方法来按值将结果进行分组。然后,可以使用Select
方法将空值或无效值分组为空字符串。
以下是一个示例代码:
List fruits = new List()
{
"apple",
"banana",
"",
"orange",
null,
"grape",
"watermelon",
"invalid"
};
var groupedFruits = fruits.GroupBy(fruit => string.IsNullOrEmpty(fruit) ? "" : fruit);
foreach(var group in groupedFruits)
{
Console.WriteLine($"Group: {group.Key}");
foreach(var fruit in group)
{
Console.WriteLine(fruit);
}
Console.WriteLine();
}
运行以上代码将得到以下输出:
Group: apple
apple
Group: banana
banana
Group:
Group: orange
orange
Group: grape
grape
Group: watermelon
watermelon
Group: invalid
invalid
在上面的代码中,我们首先使用GroupBy
方法将水果列表按值进行分组。在这个例子中,我们使用了一个lambda表达式来检查每个水果是否为空或无效值。如果是空或无效值,我们将其分组为一个空字符串。
然后,我们使用foreach
循环遍历每个分组,并打印出分组的键(即空字符串或水果名称),以及该分组中的所有水果。