C# 有 foreach oneliner 可用吗?

标签 c# syntax foreach

我只想知道C#里有没有foreach oneliner,比如if oneliner (<em>exp</em>) ? <em>then</em> : <em>else</em> .

最佳答案

如果你正在处理一个数组,那么你可以使用内置的静态 ForEach 方法:

Array.ForEach(yourArray, x => Console.WriteLine(x));

如果您正在处理 List<T>那么你可以使用内置的 ForEach 实例方法:

yourList.ForEach(x => Console.WriteLine(x));

没有任何内置的东西可以对抗任意 IEnumerable<T>序列,但如果您觉得需要它,也很容易推出您自己的扩展方法:

yourSequence.ForEach(x => Console.WriteLine(x));

// ...

public static class EnumerableExtensions
{
    public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
    {
        if (source == null) throw new ArgumentNullException("source");
        if (action == null) throw new ArgumentNullException("action");

        foreach (T item in source)
        {
            action(item);
        }
    }
}

关于C# 有 foreach oneliner 可用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793885/

相关文章:

java - 增强的 For 循环 - 对象数组

java - Java中Iterable的实现

c# - 更改多选列表的复选框颜色

c# - 我如何为 SWIG 定义类型映射,将引用参数从 C++ 转换为 C#

c# - WPF/XAML 中 Canvas 中的可重复形状

python - 为什么 python 使用 .而不是/用于导入语句中的路径?

C# 语法 - 从方法中获得 2 或 3 个答案的首选做法

python - 为什么 `def f(_,): pass` 是一个有效的 Python 函数定义?

php - php foreach 循环中的 Javascript getElementById

c# - 如何知道传递给方法的变量/属性名称?