小编RAK*_*RAK的帖子

在同一代码块中多次访问List - 有更好的方法吗?

我需要根据不同的条件从单个列表中设置多个标签的值.这是我的代码:

List<RFPModel> lst = RFPModel.GetAll();  //ALL
if(lst.Count>0)
{
    lblActive.InnerText = lst.Count(a => a.StatusID == (int)ProjectStatus.Project_Active).ToString();
    lblCompleted.InnerText = lst.Count(a => a.StatusID == (int)ProjectStatus.Project_Completed).ToString();
    lblProposal.InnerText = lst.Count(a => a.StatusID == (int)ProjectStatus.Proposal_UnderProcess).ToString();
    lblProposalsRej.InnerText = lst.Count(a => a.StatusID == (int)ProjectStatus.Proposal_Rejected).ToString();
    lblRFPRec.InnerText= lst.Count(a => a.StatusID == (int)ProjectStatus.RFP_Submitted).ToString();
    lblRFPRef.InnerText= lst.Count(a => a.StatusID == (int)ProjectStatus.RFP_Rejected).ToString();
    lblRFPApp.InnerText = lst.Count(a => a.StatusID == (int)ProjectStatus.RFP_Approved).ToString();
}
Run Code Online (Sandbox Code Playgroud)

我担心这种方法可能会影响性能,因为每当您需要遍历列表的值时.任何有关更好方法的建议都将受到高度赞赏.

c# linq asp.net performance

1
推荐指数
1
解决办法
127
查看次数

如何从列表中查找特定索引中的元素到最后?

如何从特定元素开始搜索类型列表中的元素?

我可以使用for循环实现相同的目的如下:

bool found = false;
for(int i=counter+1;i<=lstTags.Count()-1;i++)
   {
    if (lstTags[i].PlateFormID == plateFormID)
      {
        found = true;
        break;
       }
    }
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否可以通过内置功能以更有效的方式完成,例如:

var nextItem=lstTags.FirstOrDefault(a=>a.PlateFormID==plateFormID, startIndex); 
Run Code Online (Sandbox Code Playgroud)

c# linq

1
推荐指数
1
解决办法
57
查看次数

标签 统计

c# ×2

linq ×2

asp.net ×1

performance ×1