📌
foreach 文から LINQ 式への変換を推奨する ReSharper の Hint を .editorconfig で無効化する
はじめに
private static bool HasConstructorWithPreserveAttribute(INamedTypeSymbol type)
{
foreach (var constructor in type.Constructors)
{
foreach (var attribute in constructor.GetAttributes())
{
if (attribute.AttributeClass.IsPreserveAttribute())
{
return true;
}
}
}
return false;
}
上記のような C# のコードを Rider 上で記述すると、以下のように foreach のループを LINQ を使った式に変換する提案がなされます。
そして Context Action に表示される「Convert into LINQ-Expression」を実行すると以下のようにコードが変換されます。
private static bool HasConstructorWithPreserveAttribute(INamedTypeSymbol type)
{
return type.Constructors.SelectMany(constructor => constructor.GetAttributes()).Any(attribute => attribute.AttributeClass.IsPreserveAttribute());
}
どちらの方が良いかは置いておいて、この ReSharper からの Hint が表示されなくなるような .editorconfig の記述方法を紹介します。
方法
以下のように C# のコードを対象に resharper_foreach_can_be_converted_to_query_using_another_get_enumerator_highlighting
を none
に設定するだけで実現できます。
[*.cs]
resharper_foreach_can_be_converted_to_query_using_another_get_enumerator_highlighting = none
Discussion