在C#中,DistinctBy
方法是LINQ的一部分,用于從集合中刪除重復項。然而,DistinctBy
方法不能直接處理枚舉類型,因為它需要一個恒定的鍵選擇器函數來確定哪些元素是重復的。對于枚舉類型,您需要提供一個能夠唯一標識每個枚舉值的屬性或方法。
以下是一個示例,說明如何使用DistinctBy
處理枚舉類型:
using System;
using System.Collections.Generic;
using System.Linq;
enum Color
{
Red,
Green,
Blue
}
class Program
{
static void Main()
{
List<Color> colors = new List<Color>
{
Color.Red,
Color.Green,
Color.Blue,
Color.Red,
Color.Green
};
// 使用恒定的鍵選擇器函數來處理枚舉類型
var distinctColors = colors.DistinctBy(c => c);
Console.WriteLine("Distinct colors:");
foreach (var color in distinctColors)
{
Console.WriteLine(color);
}
}
}
在這個例子中,我們使用枚舉值本身作為鍵選擇器函數,這樣DistinctBy
方法就可以正確地識別并刪除重復的枚舉值。