如何在Linq中识别嵌套组?

时间:2013-05-27 10:57:10

标签: c# linq

我有一个对象源是IEnumerable< T>其中T可以是某些类或IGrouping或嵌套的IGrouping。

如何确定它是嵌套的组还是单个组?是否已分组?

2 个答案:

答案 0 :(得分:2)

它对我有用。谢谢Jan.以下是我从你的回答中得到的功能:

public static bool HasInnerGrouping<T>(this IEnumerable<T> coll)
{
    return typeof(T).GenericTypeArguments.Any(item => item.Name.Contains("IGrouping"));
}

答案 1 :(得分:1)

快速而肮脏的方法,但由于强大的string均衡而不是很好。

public bool isOrHasGrouping<T>(IEnumerable<T> coll)
{
    return
        typeof(T).Name.Contains("IGrouping") 
            ? true
        : (typeof(T).ContainsGenericParameters 
            ? typeof(T).GenericTypeArguments
                    .Any(item => item.Name.Contains("IGrouping")) 
            : false);
 }