ユーザーがファイルを追加できる汎用リストがあります。ソースがすでにリストの別のオブジェクトに存在する場合は、オブジェクトを削除するようにしています。また、System.Linqの機能を初めて使用することについても触れておきます。C#LINQ Distinct(IEqualityComparer)help
リストタイプMediaInfoをの場合:明確な(たIEqualityComparer)がない理由私は理解していない
public struct MediaInfo
{
public string source;
public char? type;
}
public class MediaInfoComparer : IEqualityComparer<MediaInfo>
{
public bool Equals(MediaInfo x, MediaInfo y)
{
return Convert.ToBoolean(string.Compare(x.source, y.source, true));
}
public int GetHashCode(MediaInfo obj)
{
if (Object.ReferenceEquals(obj, null)) return 0;
int hashProductName = obj.source == null ? 0 : obj.source.GetHashCode();
int hashProductCode = obj.type.GetHashCode();
return hashProductName^hashProductCode;
}
}
:
public static List<MediaInfo> imagePlaylist = new List<MediaInfo>();
これは、MediaInfoを構造体とされたIEqualityComparerためのコードですワーキング。
imagePlaylist = imagePlaylist.Distinct(new MediaInfoComparer()).ToList();
おかげで、
お返事ありがとうございます。エラーが文字列内にあるとは思わなかった。比較>。<。 – zaza