我有一个人看起来像:
Article.find_by(title: params[:search])
我有一个方法:
public class Person {
public string name;
public int age;
}
子列表中的每个项目具有相同的年龄。
所以内容看起来像是:
public List<List<Person>> createPairedList(List<Person> plist){
List<List<Person>> newList = new List<List<Person>>();
foreach (Person person in plist)
{
bool breaking = false;
for (int i = 0; i<newList.Count(); i++)
{
foreach (Person p in newList[i])
{
if (p.age == person.age)
{
newList[i].Add(person);
breaking = true;
break;
}
}
if (breaking){break;}
}
if (!breaking)
{
newList.Add(new List<Person>(){person});
}
}
return newList;
}
然后在这个方法之后它会像:
[{name="bob", age="20"},
{name="billy", age="21"},
{name="bobby", age="20"},
{name="john", age="21"},
{name="george", age="22"}]
有没有办法使用LINQ表达式?
答案 0 :(得分:1)
var newList = list.GroupBy(p => p.age).Select(p => p.ToList()).ToList();
将返回按List<List<Person>>
age