public class ObjectModel { private int _count; private string _str; private DateTime _addTime; }
List<ObjectModel> KeyWord= new List<ObjectModel>();
if (string.IsNullOrEmpty(word)) return;
string[] kws = word.Split(' ');
if (kws.Length == 0) return; foreach (string kw in kws) {
if (!KeyWord.Contains(kw)) {
//dosomething
} }
实际上我理想的相等只要是_str相等就相等。
请问下怎么修改ObjectModel类,让代码可以编译通过
public class ObjectModel { public int _count; public string _str; public DateTime _addTime; public override bool Equals(object obj) { return (obj as ObjectModel)._str == this._str; } }
重写Equal
if (!KeyWord.Contains(kw)) {
//dosomething
}
kw为string类型的。。。。不是ObjectModel类型的。。。。。
@越天: KeyWord是什么类型?
@幻天芒: ObjectModel
@越天: 用扩展方法:
public static class Extension { public static bool Contains(this List<ObjectModel> list, string key) { return list.Count(x => x._str == key) > 0; } }
@幻天芒: 还有其它的办法吗
@越天:自己写个List容器,实现Contains(string key)方法。
顶楼上
if (!KeyWord.Contains(kw)) {
//dosomething
}
kw为string类型的。。。。不是ObjectModel类型的。。。。。