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

标签 c# .net open-source extension-methods

<分区>

让我们列出一个答案列表,您可以在其中发布您的优秀和最喜欢的 extension methods .

要求是必须发布完整的代码以及示例和如何使用它的说明。

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

请标记您的答案并同意将代码放入 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# - 您最喜欢的 C# 扩展方法是什么? (codeplex.com/extensionoverflow),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843367/

相关文章:

c# - 为什么这个 Linq Where 子句不过滤结果

c# - entityframework 已经有一个与此命令关联的打开的 DataReader,必须先将其关闭

open-source - 为基于 XSD 的标准选择开源许可证

email - 用于测试的干净轻量级邮件服务器

c# - 我可以使用 LINQ 检查列表中的对象是否具有唯一 ID 吗?

c# - LINQ SelectMany 和 Where 扩展方法忽略空值

c# - 为什么开头和结尾的正则表达式在 C# 上不起作用?

c# - 适用于 .Net 的 Azure 服务管理 API

c# - 如何快速更新ADO实体?

scala - 开源精心设计的 play-scala-slick 应用程序