当前位置: 首页>>代码示例>>C#>>正文


C# LinkedList.Distinct方法代码示例

本文整理汇总了C#中LinkedList.Distinct方法的典型用法代码示例。如果您正苦于以下问题:C# LinkedList.Distinct方法的具体用法?C# LinkedList.Distinct怎么用?C# LinkedList.Distinct使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在LinkedList的用法示例。


在下文中一共展示了LinkedList.Distinct方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: GetRolesForMethods

        public static IEnumerable<RolesForMethod> GetRolesForMethods(IEnumerable<MethodInfo> methods)
        {
            RolesForMethod[] result= new RolesForMethod[methods.Count()];
            int i=0;
            foreach (MethodInfo methInfo in methods)
            {
                RolesForMethod method_roles = new RolesForMethod { MethodName = methInfo.Name, Roles = null, IsRolesOverride=false };
                var roles_list = new LinkedList<string>();

                //the override attribute replaces all other roles for the method
                var override_roles = methInfo.GetCustomAttribute<OverrideAuthorizeAttribute>(false);
                if (override_roles != null)
                {
                    method_roles.IsRolesOverride = true;
                    method_roles.Roles = override_roles.Roles.Select(a => a.Trim()).Distinct().ToArray();
                    result[i++] = method_roles;
                    continue;
                }

                var attrs = methInfo.GetCustomAttributes(typeof(AuthorizeAttribute), false).OfType<AuthorizeAttribute>();
                if (attrs.Count() == 0)
                {
                    //allow unauthenticated access
                    var passthrough_attrs = methInfo.GetCustomAttributes(typeof(AllowAnonymousAttribute), false).OfType<AllowAnonymousAttribute>();
                    if (passthrough_attrs.Count()> 0)
                        roles_list.AddLast(ALLOW_ANONYMOUS);
                }
                else
                {
                    //at least user must be authenticated
                    roles_list.AddLast(AUTHENTICATED);
                    foreach (var attr in attrs)
                    {
                        var attr_roles = attr.Roles.Select(a => a.Trim());
                        foreach (var role in attr_roles)
                            roles_list.AddLast(role);
                    }
                }
                method_roles.Roles = roles_list.Distinct().ToArray();
                result[i++] = method_roles;
            }

            return result;
        }
开发者ID:cbsistem,项目名称:JRIAppTS,代码行数:44,代码来源:SecurityHelper.cs

示例2: GetRolesForMethods

        public static IEnumerable<string> GetRolesForMethods(IEnumerable<MethodInfo> methods)
        {
            LinkedList<string> roles_list = new LinkedList<string>();
            foreach (MethodInfo methInfo in methods)
            {
                var attrs = methInfo.GetCustomAttributes(typeof(AuthorizeAttribute), false).OfType<AuthorizeAttribute>();
                if (attrs.Count() == 0)
                {
                    //allow unauthenticated access
                    var passthrough_attrs = methInfo.GetCustomAttributes(typeof(AllowAnonymousAttribute), false).OfType<AllowAnonymousAttribute>();
                    roles_list.AddLast(ALLOW_ANONYMOUS);
                }
                else
                {
                    //at least user must be authenticated
                    roles_list.AddLast(AUTHENTICATED);
                    foreach (var attr in attrs)
                    {
                        var attr_roles = attr.Roles.Select(a => a.Trim());
                        foreach (var role in attr_roles)
                            roles_list.AddLast(role);
                    }
                }
            }

            var distinct_roles = roles_list.Distinct();
            return distinct_roles;
        }
开发者ID:NishantTeria,项目名称:jRIApp,代码行数:28,代码来源:SecurityHelper.cs

示例3: GetRolesForService

        public static IEnumerable<string> GetRolesForService(Type serviceType)
        {
            LinkedList<string> roles_list = new LinkedList<string>();
            var attrs = serviceType.GetCustomAttributes(typeof(AuthorizeAttribute), false).OfType<AuthorizeAttribute>();
            if (attrs.Count() > 0)
            {
                //at least user must be authenticated
                roles_list.AddLast(SecurityHelper.AUTHENTICATED);
            }

            foreach (var attr in attrs)
            {
                var attr_roles = attr.Roles.Select(a => a.Trim());
                foreach (var role in attr_roles)
                    roles_list.AddLast(role);
            }

            var distinct_roles = roles_list.Distinct();
            return distinct_roles;
        }
开发者ID:NishantTeria,项目名称:jRIApp,代码行数:20,代码来源:SecurityHelper.cs

示例4: GetPossibleColliders

 public GameObject[] GetPossibleColliders(GameObject obj)
 {
     var objects = new LinkedList<GameObject>();
     var bucketIds = GetIdForObj(obj);
     foreach (var item in bucketIds)
     {
         objects.AddRange(Buckets.Get(item));
     }
     return objects.Distinct().ToArray();
 }
开发者ID:Caresilabs,项目名称:MAH_Artificial_Intelligence,代码行数:10,代码来源:SpatialHashGrid.cs


注:本文中的LinkedList.Distinct方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。