Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c语言中为对象集赋值#_C# - Fatal编程技术网

C# 如何在c语言中为对象集赋值#

C# 如何在c语言中为对象集赋值#,c#,C#,我希望能够在不使用循环的情况下一次性将数据分配给一组值。像这样的 transactions.Where(x => x.sender == agent.realId).AllRows.Amount = 625000; 不做这样的事 var trans = transactions.Where(x => x.sender == agent.realId); foreach(var t in trans) { t.Amount = 625000; } 提前感谢问题是,没有循环

我希望能够在不使用循环的情况下一次性将数据分配给一组值。像这样的

transactions.Where(x => x.sender == agent.realId).AllRows.Amount = 625000;
不做这样的事

var trans = transactions.Where(x => x.sender == agent.realId);
foreach(var t in trans)
{ 
    t.Amount = 625000;
}

提前感谢

问题是,没有循环,你真的做不到。如果你的目标是让它看起来更灵巧,你可以做类似的事情:

transactions
    .Where(x => x.sender == agent.realId)
    .ToList()
    .ForEach(x => x.Amount = 625000);
但我个人并不热衷于此

首先,它仍然是一个循环,即使它是一个函数形式

第二,尽管它看起来更像linq,但事实并非如此。Linq操作符都基于函数式编程原理,这意味着不变性。然而,在这里,您希望为
Amount
属性分配一个新值,这是一个可变操作,因此不符合函数方法


总之,我的建议是在做函数性工作时使用linq操作符,在做命令性工作时使用循环。很快-在作业中使用循环。

问题是,没有循环,你真的做不到。如果你的目标是让它看起来更灵巧,你可以做类似的事情:

transactions
    .Where(x => x.sender == agent.realId)
    .ToList()
    .ForEach(x => x.Amount = 625000);
但我个人并不热衷于此

首先,它仍然是一个循环,即使它是一个函数形式

第二,尽管它看起来更像linq,但事实并非如此。Linq操作符都基于函数式编程原理,这意味着不变性。然而,在这里,您希望为
Amount
属性分配一个新值,这是一个可变操作,因此不符合函数方法


总之,我的建议是在做函数性工作时使用linq操作符,在做命令性工作时使用循环。很快-使用循环进行赋值。

您可以编写一个扩展方法,允许您对IEnumerable中的每个元素执行操作:

public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
    foreach (T item in source) { action(item); }
}

您可以编写一个扩展方法,允许您对IEnumerable中的每个元素执行操作:

public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
{
    foreach (T item in source) { action(item); }
}

这有什么问题?数据的来源是什么(即
事务
来自哪里)?有什么问题?数据的来源是什么(即
事务
来自哪里)?而且,这实际上有两个循环,一个用于ToList,另一个用于ForEach。还有内存分配,因为ToList。而且,这实际上有两个循环,一个用于ToList,另一个用于ForEach。由于ToList的原因,还有内存分配。还有这个扩展。还有这个扩展。