Introduce FirstEnabledConditionalTraitOrDefault

This commit is contained in:
abcdefg30
2022-10-09 22:56:40 +02:00
committed by Gustas
parent 858d782af1
commit 75f642bd09
6 changed files with 27 additions and 7 deletions

View File

@@ -538,6 +538,26 @@ namespace OpenRA
return default;
}
public static T FirstEnabledConditionalTraitOrDefault<T>(this IEnumerable<T> ts) where T : IDisabledTrait
{
// PERF: Avoid LINQ.
foreach (var t in ts)
if (!t.IsTraitDisabled)
return t;
return default(T);
}
public static T FirstEnabledConditionalTraitOrDefault<T>(this T[] ts) where T : IDisabledTrait
{
// PERF: Avoid LINQ.
foreach (var t in ts)
if (!t.IsTraitDisabled)
return t;
return default(T);
}
public static LineSplitEnumerator SplitLines(this string str, char separator)
{
return new LineSplitEnumerator(str.AsSpan(), separator);