
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
73 lines
1.4 KiB
Plaintext
73 lines
1.4 KiB
Plaintext
== Why is this an issue?
|
|
|
|
When a loop is filtering, selecting or aggregating, those functions can be handled with a clearer, more concise LINQ expression instead.
|
|
|
|
|
|
=== Noncompliant code example
|
|
|
|
[source,csharp]
|
|
----
|
|
var result = new List<string>();
|
|
foreach (var element in collection) // Noncompliant
|
|
{
|
|
if (condition(element))
|
|
{
|
|
result.Add(element);
|
|
}
|
|
}
|
|
|
|
foreach (var element in collection2) // Noncompliant
|
|
{
|
|
var someValue = element.Property;
|
|
if (someValue != null)
|
|
{
|
|
result.Add(someValue);
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,csharp]
|
|
----
|
|
var result = new List<string>();
|
|
|
|
foreach (var element in collection.Where(x => condition(x)))
|
|
{
|
|
result.Add(element);
|
|
}
|
|
|
|
foreach (var someValue in collection2.Select(x => x.Property).Where(y => y != null))
|
|
{
|
|
result.Add(someValue);
|
|
}
|
|
----
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
=== Message
|
|
|
|
* Use a LINQ expression in the loop declaration instead of this "xxx".
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== on 10 Jul 2015, 12:30:19 Ann Campbell wrote:
|
|
\[~tamas.vajk] I tried to break the code samples into individual issues. Please help if I muffed it.
|
|
|
|
=== on 20 Jul 2015, 11:38:39 Tamas Vajk wrote:
|
|
\[~ann.campbell.2] I removed a "probably" from the description.
|
|
|
|
=== on 20 Jul 2015, 14:36:13 Ann Campbell wrote:
|
|
thanks [~tamas.vajk]
|
|
|
|
endif::env-github,rspecator-view[]
|