var p = typeof(T).GetProperty(comboText);
listData.Select(i => p.GetValue(i).ToString()).ToList();
大致就这样
可能还需要判断空引用之类的,看你的具体情况了

解决方案 »

  1.   

    为毛一定要用反射呢,反射效率低下,特别是用在循环中。
    你可以将T类型定义为继承一个接口 比如 interface IcomboText { string comboText;}}
    这样就可以 listData.Select (i=> ((IcomboText)i).comboText);代码稳定性和效率和反射比不是一个量级的
      

  2.   

    for (dynamic item in listData)
    {
        string s = item.comboText.ToString();
    }
      

  3.   


     foreach (T temp in list)
      

  4.   

    通过泛型查找不同属性的值
     public class Finder
            {
                // 定义一个泛型方法,用来查找指定值在数组中的索引
                public static int Find<T>(T[] items, T item)
                {
                    for (int i = 0; i < items.Length; i++)//遍历泛型数组
                    {
                        if (items[i].Equals(item))//判断是否找到了指定值
                        {
                            return i;//返回指定值在数组中的索引
                        }
                    }
                    return -1;//如果没有找到,返回-1
                }
            } 
      

  5.   

    这个双重循环套反射...略有点那啥....
    就是遍历T.GetType().GetProperties()数组,有一个name还是什么的属性可以获取属性的引用名,然后循环和comboText的字段值对比,符合要求的就取出来....最好加上break,因为本来就已经很影响效率了...不知道有没有更好的做法,因为这样对比需要循环,集合又需要循环,而里面又是反射...
      

  6.   

    当然你可以直接在第1个循环的时候用临时变量保存该属性在properties里的索引,后面直接用索引取..就稍微好一些...