2つの配列両方に属するものを取得する方法をLINQで
2つの配列のクラスが同じ場合
public class Student
{
public string Name;
public int Age;
}
public class Class
{
public Student[] Students;
}
public class Club
{
public Student[] Students;
}
public class Student
{
public string Name;
public int Age;
}
public class Class
{
public Student[] Students;
}
public class Club
{
public Student[] Students;
}
クラスとクラブ両方に属している生徒の名前のリストを作りたい場合
foreachを使った場合は
var names = new List<string>();
foreach (var student in @class.Students)
{
foreach (var clubStudent in club.Students)
{
if (student == clubStudent)
{
names.Add(student.Name);
}
}
}
LINQなら
var names = @class.Students
.Intersect(club.Students)
.ToList();
2つの配列が同じクラスではない場合
public class Student
{
public string Name;
public int Age;
}
public class Class
{
public Student[] Students;
}
public class Member
{
public int Id;
public string Name;
}
public class Club
{
public Member[] Members;
}
public class Student
{
public string Name;
public int Age;
}
public class Class
{
public Student[] Students;
}
public class Member
{
public int Id;
public string Name;
}
public class Club
{
public Member[] Members;
}
クラスとクラブ両方に属している同じ名前の人のメンバーIDリストを作りたい場合
foreachを使った場合は
var ids = new List<int>();
foreach (var student in @class.Students)
{
foreach (var member in club.Members)
{
if (student.Name == member.Name)
{
ids.Add(member.Id);
}
}
}
LINQなら
var ids = @class.Students
.Join(club.Members, student => student.Name, member => member.Name, (student, member) => member.Id)
.ToList();
Author And Source
この問題について(2つの配列両方に属するものを取得する方法をLINQで), 我々は、より多くの情報をここで見つけました https://qiita.com/ryo1988/items/3e4ffb80733d1b37d45f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .