首页 新闻 会员 周边 捐助

List重新写Contains方法

0
悬赏园豆:10 [已解决问题] 解决于 2014-01-21 10:59
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类,让代码可以编译通过

越天的主页 越天 | 初学一级 | 园豆:8
提问于:2014-01-20 19:37
< >
分享
最佳答案
0
 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

收获园豆:10
幻天芒 | 高人七级 |园豆:37205 | 2014-01-20 20:12

if (!KeyWord.Contains(kw)) {
//dosomething
}

 

kw为string类型的。。。。不是ObjectModel类型的。。。。。

越天 | 园豆:8 (初学一级) | 2014-01-21 08:25

@越天: KeyWord是什么类型?

幻天芒 | 园豆:37205 (高人七级) | 2014-01-21 10:09

@幻天芒: ObjectModel

越天 | 园豆:8 (初学一级) | 2014-01-21 10:15

@越天: 用扩展方法:

public static class Extension
    {
        public static bool Contains(this List<ObjectModel> list, string key)
        {
            return list.Count(x => x._str == key) > 0;
        }
    }
幻天芒 | 园豆:37205 (高人七级) | 2014-01-21 10:40

@幻天芒: 还有其它的办法吗

越天 | 园豆:8 (初学一级) | 2014-01-21 10:41

@越天:自己写个List容器,实现Contains(string key)方法。 

幻天芒 | 园豆:37205 (高人七级) | 2014-01-21 10:58
其他回答(1)
0

顶楼上

wolfy | 园豆:2636 (老鸟四级) | 2014-01-20 20:17

if (!KeyWord.Contains(kw)) { 
//dosomething 
}

 

kw为string类型的。。。。不是ObjectModel类型的。。。。。

支持(0) 反对(0) 越天 | 园豆:8 (初学一级) | 2014-01-21 08:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册