ClosestColor
を編集して、List<Color>
の代わりにList<DuluxColours>
というパラメータを受け入れる方法を教えてください。私は私のList<DuluxColours>
カスタムクラスリストのLinq
から色の名前を返すようにする方法ClosestColor
が必要
はこのさえ可能ですか?私のLinqの能力は多少不足しています:)
ありがとう!
public int ClosestColor(List<Color> colours, Color target)
{
var colorDiffs = colours.Select(n => ColorDiff(n, target)).Min(n => n);
return colours.FindIndex(n => ColorDiff(n, target) == colorDiffs);
}
public int ColorDiff(Color c1, Color c2)
{
return (int)Math.Sqrt((c1.R - c2.R) * (c1.R - c2.R)
+ (c1.G - c2.G) * (c1.G - c2.G)
+ (c1.B - c2.B) * (c1.B - c2.B));
}
public class DuluxColour
{
public string ColourName { get; set; }
public Color Colour { get; set; }
}
のために働くことを願って私はあなたがする必要があると思います: var colorDiffs = colours.Select(n => ColorDiff(n.Colour、target))。Min(n => n.Colour); return colours.FindIndex(n => ColorDiff(n.Colour、target)== colorDiffs); – publicgk