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/271398/

相关文章:

c# - .XmlSerializers.dll 如何使用它 - 被 Internet 上的示例搞糊涂了

c# - 静态集合和asp.net

.net - 循环和垃圾收集

.net - WPF 桌面应用程序中的 gRPC 服务器?

ios - 如何分享我构建并发现非常有用的自定义 swift 扩展

android - 精心设计的 Android 应用程序的开源示例?

c# - 将 c# 2.0 BL/DL 和 webservice/wcf 代码移植到 linux(使用 oracle DB)

c# - 向页面传递参数

c++ - 开源和跨平台多人游戏/网络库?

c# - WPF/C# Textwrapping in a scrollviewer 使窗口大小调整滞后