C# 可枚举的.Unit()函数

C# 可枚举的.Unit()函数,c#,ienumerable,C#,Ienumerable,发现自己处于这样一种情况:我有一个带有这个签名的方法 void DoSomething(IEnumerable<T> before, IEnumerable<T> after) void DoSomething(前面可数,后面可数) 当我只有一个元素而不是IEnumerable时,我发现自己经常不得不调用它 我曾想过添加三个重载,但当其中一个参数为null时,这并没有帮助 所以我想我可以把我的单个元素“包装”在一个IEnumerable中并发送出去,但是我在Enume

发现自己处于这样一种情况:我有一个带有这个签名的方法

void DoSomething(IEnumerable<T> before, IEnumerable<T> after)
void DoSomething(前面可数,后面可数)
当我只有一个元素而不是IEnumerable时,我发现自己经常不得不调用它

我曾想过添加三个重载,但当其中一个参数为null时,这并没有帮助

所以我想我可以把我的单个元素“包装”在一个IEnumerable中并发送出去,但是我在Enumerable上找不到任何我想要的东西(也许我找得不够仔细)

所以我在看这样的东西

    public static IEnumerable<T> EnumerableUnit<T>(T item)
    {
        if(item != null) yield return item;
    }
公共静态IEnumerable EnumerableUnit(T项)
{
如果(项目!=null)生成退货项目;
}
这是个好主意吗?或者我应该做些更好的事情吗?

这可能会有帮助:

new[]{obj}
这可能有助于:

new[]{obj}

是的,这肯定比我想到的新列表(obj)好(好吧,在我看来更好)。
newlist(obj)
需要明确地写下类型。不要太担心
new
ing数组。如果有一个
可枚举的.Unit(obj)
,它就必须实例化一个新类才能返回.Ah。我讨厌评论和帖子中不一致的降价解释。是的,这肯定比我想到的新列表(obj)好(嗯,在我看来更好)。
newlist(obj)
需要明确地写下类型。不要太担心
new
ing数组。如果有一个
可枚举的.Unit(obj)
,它就必须实例化一个新类才能返回.Ah。我讨厌评论和帖子中不一致的降价解释。