本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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();
}