是否可以使用LINQ进行列表操作?

Ang*_*ore 6 c# linq list

这可能是一个愚蠢的问题,但我总是使用linq来选择项目.

但我想知道是否可以使用其关键字执行以下简单任务.

List<OrdersInfo> ordersList
.
.
.
foreach(OrdersInfo OI in ordersList)
        if(OI.TYPE == "P")
            OI.TYPE = "Project";
        else
        OI.TYPE = "Support";
Run Code Online (Sandbox Code Playgroud)

bin*_*ard 6

您可以使用List类的ForEach方法.

ordersList.ForEach(oi => oi.TYPE = oi.TYPE == "P" ? "Project" : "Support" );
Run Code Online (Sandbox Code Playgroud)

如果你想在IEnumerable类型中使用ForEach方法,你可以创建自己的ForEach扩展

public static void ForEach<T>(this IEnumerable<T> en, Action<T> action)
{
    foreach(T item in en)
    {
        action(item);
    }
}
Run Code Online (Sandbox Code Playgroud)


Tig*_*ran 5

不,LINQ(语言集成查询)是一种查询语言,它确实在简洁的查询定义方面表现出色,但在这方面也并不总是很好(速度和/或内存问题)。

如果您想修改集合,请保持您已经这样做的方式。