Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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# 在foreach声明中调用方法_C#_Foreach - Fatal编程技术网

C# 在foreach声明中调用方法

C# 在foreach声明中调用方法,c#,foreach,C#,Foreach,我有一个foreach,它调用一个方法来获取它的集合 foreach(var item in GetItemDetails(item)) { } VisualStudio对此没有抱怨,Resharper也没有抱怨,但是,在我继续使用这种方法之前,我想联系一下,看看这是否是一种推荐的方法 这没什么错。该方法将只评估一次 基本上是: using(var iter = GetItemDetails(item).GetEnumerator()) { while(iter.MoveNext

我有一个foreach,它调用一个方法来获取它的集合

 foreach(var item in GetItemDetails(item))
 {
 }

VisualStudio对此没有抱怨,Resharper也没有抱怨,但是,在我继续使用这种方法之前,我想联系一下,看看这是否是一种推荐的方法

这没什么错。该方法将只评估一次

基本上是:

using(var iter = GetItemDetails(item).GetEnumerator())
{
    while(iter.MoveNext()
    {
        var item = iter.Current;
        // ...
    }
}

没什么问题

只有两个建议:

    >P>如果将循环中的内容写入单个项目的方法,这将使它可重用,我也会考虑<代码>列表.Frach(…);<代码>方法。 信息:

  • 如果您真的想追求性能(甚至在C#中也可能发生这种情况),for循环通常是最快的,尽管可读性较差,代码也不太简洁: 信息:


List.ForEach比常规的
ForEach
更可取的时间是分钟-尤其要记住,
List
有一个自定义的
struct
迭代器,这使得它非常高效。而re
for
vs
foreach
,这在很大程度上取决于场景,通常差别不大。大多数实际操作代码之间的差异非常小,您实际上只是在分析您的分析器。谢谢。也许是因为英语不是我的母语,但在你的第一句话里,有些东西我不确定。出于性能原因,只是为了可读性,我没有提到.ForEach()。如果同意for循环,那就是我提到“甚至在C#中也可能发生”的原因,但我已经遇到过这种优化被证明是有用的具体案例。