Wow*_*owa 15 c# syntax foreach
我只是想知道C#中是否有foreach oneliner,就像if oneliner一样.(exp) ? then : else
Luk*_*keH 47
如果您正在处理数组,那么您可以使用内置的静态ForEach方法:
Array.ForEach(yourArray, x => Console.WriteLine(x));
Run Code Online (Sandbox Code Playgroud)
如果你正在处理a,List<T>那么你可以使用内置的ForEach实例方法:
yourList.ForEach(x => Console.WriteLine(x));
Run Code Online (Sandbox Code Playgroud)
没有任何内置功能可以对任何任意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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
想象一下,您有三个变量,并且您希望一次性设置它们的相同属性:
foreach (var item in new [] {labelA, labelB, labelC})
{
item.Property= Value;
}
Run Code Online (Sandbox Code Playgroud)
这相当于做:
foreach (var item in new List<SomeType>(){labelA, labelB, labelC})
{
item.Property= Value;
}
Run Code Online (Sandbox Code Playgroud)
foreach可以使用 LINQ 扩展方法实现 line-liners。例如:
代替:
var result = new List<string>();
foreach (var item in someCollection)
{
result.Add(item.Title);
}
Run Code Online (Sandbox Code Playgroud)
你可以:
var result = someCollection.Select(x => x.Title).ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24615 次 |
| 最近记录: |