从自定义类类型中排序控件列表

时间:2018-02-14 09:11:48

标签: c# list class

我的列表中有一个问题,我查看了大部分示例,但我认为我的问题很独特。请检查并帮助我完成它。

List<Control> lc = new List<Control>();

foreach (Control control in fLP.Controls)
{
   Dashboard_Env_Details ded =  (Dashboard_Env_Details)control;
   ded.refreshUC();
   lc.Add(control);
}

List<Control> Sortedlc = lc.OrderBy((o => ((Dashboard_Env_Details)o).custTask.getNoInvalidObjects).ToList();

我收到以下错误:

  

严重级代码描述项目文件行抑制状态   错误CS0411方法的类型参数   &#39; Enumerable.OrderBy(IEnumerable,Func)&#39;无法从使用中推断出来。尝试指定类型   参数   明确。 KeepMyServerInfo C:\ Users \ CM_Dashboard.cs 141 Active

1 个答案:

答案 0 :(得分:4)

左括号太多了。我会使用OfTypeCast或将控件存储在List<Dashboard_Env_Details>中:

List<Control> Sortedlc = lc.Cast<Dashboard_Env_Details>()
 .OrderBy(o => o.custTask.getNoInvalidObjects)
 .Select(o => (Control) o)
 .ToList();

如果列表中还包含其他控件,则可以使用OfType