日期:2014-05-18  浏览次数:20899 次

List<>泛型的遍历问题
使用foreach循环可以遍历List<>的所有元素。现在想查找list中是否含有某个字符串,是否可以使用类似contains的方法?

------解决方案--------------------
不是有Find方法吗
------解决方案--------------------
探讨
不是有Find方法吗

------解决方案--------------------
List<T> lst=new List<T>();
List<T> l=lst.FindAll(delegate(T t){return t.name.Contains("a");});
或使用LINQ
------解决方案--------------------
用lambda表达式也可以
------解决方案--------------------
可以用find。
------解决方案--------------------
探讨
List <T> lst=new List <T>();
List <T> l=lst.FindAll(delegate(T t){return t.name.Contains("a");});
或使用LINQ

------解决方案--------------------
探讨
List <T> lst=new List <T>();
List <T> l=lst.FindAll(delegate(T t){return t.name.Contains("a");});
或使用LINQ

------解决方案--------------------
恩,其实楼上几位前辈教训一下是对的,简单的问题可以自己慢慢试试,你在对象后面.一下看感应出来的方法和属性,慢慢看哈就知道怎么做了。。。
------解决方案--------------------
UP
------解决方案--------------------
如果你看不懂委托,或者你可以换个角度来看如:
下面的代码可能会给你一些启示:
C# code
        private void button1_Click(object sender, EventArgs e)
        {
            List<string> myList = new List<string>();
            for(int i = 0; i < 10; i++)
            {
                myList.Add(i.ToString ());//我给他填充1--10
            }

            if (myList.Find(MathChar) != null)
            {
                MessageBox.Show("有这个元素");
            }
            else
            {
                MessageBox.Show("没有这个元素");
            }
        }


        private bool MathChar(string str)
        {

            if (str.Equals("3"))//这里来判断是否有3这个元素
                return true;
            else
                return false;
        }

------解决方案--------------------
看好了,MathChar是函数名
------解决方案--------------------
没那么先进过,从来就是一个一个找,保险起见
------解决方案--------------------
用Find方法呀...
------解决方案--------------------
C# code
List<string> myList = new List<string>();
            for(int i = 0; i < 10; i++)
            {
                myList.Add(i.ToString ());//我给他填充1--10
            }
            List<string > test=myList.FindAll(delegate(string  t) { return t.Contains("3") ;});
            if (test !=null )
            {
                MessageBox.Show("有这个元素");
            }
            else
            {
                MessageBox.Show("没有这个元素");
            }

------解决方案--------------------
受用!自己也试一试!
------解决方案--------------------
探讨
if (test !=null )
            {
                MessageBox.Show("有这个元素");
            }
好像应该改为if(test.count !=0){}