你最喜欢的扩展方法是什么C#? (codeplex.com/extensionoverflow)

让我们做一个答案的列表,你发布你的优秀和喜爱的extension methods

要求是必须发布完整的代码和一个示例以及如何使用它的解释。

基于对这个主题的高度兴趣,我设置了一个名为extensionoverflow on Codeplex的开源项目。

请将您的答案标记为接受,将代码放在Codeplex项目中。

请发布完整的源代码,而不是链接。

Codeplex新闻:

24.08.2010 Codeplex页面现在位于:http://extensionoverflow.codeplex.com/

11.11.2008 XmlSerialize / XmlDeserialize现在是ImplementedUnit Tested

11.11.2008还有更多开发商的空间。 ;-)加入!

11.11.2008第三贡献者加入ExtensionOverflow,欢迎BKristensen

11.11.2008 FormatWith现在是ImplementedUnit Tested

09.11.2008第二贡献者加入ExtensionOverflow.欢迎来到chakrit

09.11.2008我们需要更多的开发人员。 😉

09.11.2008 ThrowIfArgumentIsNull现在在ImplementedUnit Tested在Codeplex。

最佳答案
public static bool In<T>(this T source, params T[] list)
{
  if(null==source) throw new ArgumentNullException("source");
  return list.Contains(source);
}

让我替换:

if(reallyLongIntegerVariableName == 1 || 
    reallyLongIntegerVariableName == 6 || 
    reallyLongIntegerVariableName == 9 || 
    reallyLongIntegerVariableName == 11)
{
  // do something....
}

and

if(reallyLongStringVariableName == "string1" || 
    reallyLongStringVariableName == "string2" || 
    reallyLongStringVariableName == "string3")
{
  // do something....
}

and

if(reallyLongMethodParameterName == SomeEnum.Value1 || 
    reallyLongMethodParameterName == SomeEnum.Value2 || 
    reallyLongMethodParameterName == SomeEnum.Value3 || 
    reallyLongMethodParameterName == SomeEnum.Value4)
{
  // do something....
}

使用:

if(reallyLongIntegerVariableName.In(1,6,9,11))
{
      // do something....
}

and

if(reallyLongStringVariableName.In("string1","string2","string3"))
{
      // do something....
}

and

if(reallyLongMethodParameterName.In(SomeEnum.Value1, SomeEnum.Value2, SomeEnum.Value3, SomeEnum.Value4)
{
  // do something....
}

转载注明原文:你最喜欢的扩展方法是什么C#? (codeplex.com/extensionoverflow) - 代码日志