首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 匿名方法 泛型委托 List<string>该如何解决

2011-12-29 
c# 匿名方法 泛型委托 Liststringforeach (string s in citys){Liststring tmpList content.FindAll(

c# 匿名方法 泛型委托 List<string>
foreach (string s in citys)
  {
  List<string> tmpList =content.FindAll(delegate(string st) { if (st.Split(',')[st.Split(',').Length-1].CompareTo(s) == 0) return true; else return false; });
  DataTable dt = CreateTable(tmpList, content[0]);
  TableToExcel(dt,s);
  }

问题:
List<string> tmpList =content.FindAll(delegate(string st) { if (st.Split(',')[st.Split(',').Length-1].CompareTo(s) == 0) return true; else return false;
这里的匿名方法里的参数st怎么样知道是content里的成员呢?这是固定的吗?
一句话,就是说我不知道编译器是怎么样知道st是用什么值。

[解决办法]
如果搂主还没明白的话,再补充一下,
楼主要理解List<T>泛型的FindAll方法的原理:它内部是进行循环匹配比较的,然后它每循环一次,都会回调一次我们传入的这个匿名委托,然后这个委托就是执行我们自定义的这个匹配条件的

你想想,FindAll方法内部如果不把这个st参数传出来给我们的话,那么我们怎么设置这个匹配条件呢?楼主明白了这一点,也就理解了st参数是怎么回事

热点排行