LoginSignup
1
1

More than 1 year has passed since last update.

C# LINQ 複数要素をまとめた形で、ダブり落とし(重複排除、Distinct)

Last updated at Posted at 2022-09-11

複数要素をまとめた形で、ダブり落とし(重複排除、Distinct)
.net6で登場するDistinctByが使えない人向け

・一度各要素を、繋いで一文(string)にする
・Distinct
・あらためて、Split&Parse

sample.cs
List<double[]> l1 = new List<double[]>();

l1.Add(new double[] { 4,12});
l1.Add(new double[] { 12,12});
l1.Add(new double[] { 6,10});
l1.Add(new double[] { 4,9});
l1.Add(new double[] { 11,9});
l1.Add(new double[] { 13,9});
l1.Add(new double[] { 7,5});
l1.Add(new double[] { 8,3});
l1.Add(new double[] { 6,2});

//以下重複分
l1.Add(new double[] { 4,12});
l1.Add(new double[] { 12,12});
l1.Add(new double[] { 6,10});
l1.Add(new double[] { 4,12});
l1.Add(new double[] { 4,12});

var l1_dis = l1
	.Select(p => string.Join("_",p))
	.Distinct()
	.Select(p => p.Split('_').Select(a => double.Parse(a)).ToArray())
	.ToArray();

foreach(var ll1_dis in l1_dis ){
	Console.WriteLine("ll1_dis: "+ string.Join(", ",ll1_dis) );
}

以下、結果(ダブり落としされている)

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1