Ily*_*dik 2 .net c# enumerable
我有一个简单的方法是这样的:
private void CalculateTotals(IEnumerable<MyData> data)
{
decimal value1 = data.Sum(d => d.Value1);
decimal value2 = data.Sum(d => d.Value2);
}
Run Code Online (Sandbox Code Playgroud)
这可以正常工作,并允许传入任何类型的集合,但是这也将执行多个数据枚举,而这可能也非常昂贵。
现在,我可以将参数的类型更改为,ICollection<MyData>但这意味着调用者不知道该方法是否可以/将更改集合,因为可以对其进行调用Add/Remove。
我的下一个猜测IReadonlyCollection<MyData>似乎是最合适的,但这意味着每个调用者都必须创建/转换为new ReadonlyCollection。
.net中是否有解决此问题的“首选”方法?
我的下一个猜测
IReadonlyCollection<MyData>似乎是最合适的,但这意味着每个调用者都必须创建/转换为newReadonlyCollection。
好吧,因为各种内置类型都实现了该接口:
但是相反,您可能要防止双重枚举。
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |