110,571
社区成员
发帖
与我相关
我的任务
分享
GroupBy(p=>new{p.name,p.type,p.level})
public static void Main(string[] args)
{
List<Test> t = new List<Test>() {
new Test(){id=1,name="车辆"},
new Test(){id=2,name="车辆"},
new Test(){id=3,name="飞机"},
new Test(){id=4,name="火车"},
new Test(){id=4,name="火车"},
};
var q = t.GroupBy(x => x.name).Where(x => x.Count() > 1).ToList();
foreach (var item in q)
{
Console.WriteLine(item.Key);
}
Console.ReadLine();
}
list.GroupBy(p=>p.Name).Where(g=>g.Count()>1)
然后循环一次就可以了public IQueryable<Resource> List(int resourceType, string keyword, ResourceLevel level)
{
var queryable = dbContext.Resources.AsQueryable();
if (!string.IsNullOrEmpty(keyword))
{
char[] splitChar = { ' ' };
string[] strArr = keyword.Split(splitChar);
foreach (string str in strArr)
{
queryable = queryable.Where(r => (r.Keyword.Contains(str) || r.Title.Contains(str)) && (r.Type == (ResourceType)resourceType && r.Level == level));
}
}
else
{
if (resourceType == -2)
{
queryable = queryable.GroupBy(p => p.ContentFile).Where(x => x.Count() > 1).AsQueryable();
}
else {
queryable = queryable.Where(r => r.Type == (ResourceType)resourceType && r.Level == level);
}
}
return queryable;
}