【C#】配列やリストの重複した要素を削除する
リスト内の重複した要素を削除するには System.Linq の Distinct を使うと楽です。
目次
例1:単純な値の要素を削除する
using System.Linq;
var data = new int[] { 0, 1, 2, 2, 3 };
var result = dataA.Distinct().ToArray();
// 結果
result: {0, 1, 2, 3}
例2:クラスの要素を削除する
クラスに要素を削除するための比較関数を実装します。GetHashCode() をオーバーライドします。
using System;
public class WeaponData : IEquatable<WeaponData>
{
private int id;
#region Distinct用
public override int GetHashCode()
{
return id.GetHashCode();
}
bool IEquatable<WeaponData>.Equals(WeaponData _weaponData)
{
if (_weaponData == null)
{
return false;
}
return (roadId == _weaponData.id);
}
#endregion
}
あとは単純な値の配列と同じ様に Distinct を呼ぶだけで良いです。