申し訳ありません質問のタイトルが混乱している場合は、私は2つのクラスのユーザーと住所があるシナリオを持っています。リストのアイテムを別のリストのIDで取得する
public class User
{
public int userId { get; set; }
public string userName { get; set; }
public List<Address> address { get; set; }
}
public class Address
{
public string AddressLine { get; set; }
public string City { get; set; }
public string State { get; set; }
public int UserId { get; set; }
}
ユーザーIDは、クラスのアドレスの外部キーは、私は2つのリスト、ユーザーのリストやアドレスのリストを持っています。ユーザーのアドレスの値がnullの場合、各ユーザーのアドレス一覧を取得したいのですが、どのように達成できますか?私はforeachを使うことができると知っていますが、linqがこれを達成する方法はありますか?以下はサンプルコードです。
class Program
{
static void Main(string[] args)
{
var users = new List<User>();
users.Add(new User { userId = 1, userName = "User 1" });
users.Add(new User { userId = 2, userName = "User 2" });
users.Add(new User { userId = 3, userName = "User 3" });
users.Add(new User { userId = 4, userName = "User 4" });
var address = new List<Address>();
address.Add(new Address { AddressLine = "Address 1", City = "City 1", State = "State 1", UserId = 1 });
address.Add(new Address { AddressLine = "Address 1 Dup", City = "City 1", State = "State 1", UserId = 1 });
address.Add(new Address { AddressLine = "Address 2", City = "City 2", State = "State 2", UserId = 2 });
address.Add(new Address { AddressLine = "Address 2 Dup", City = "City 2", State = "State 2", UserId = 2 });
address.Add(new Address { AddressLine = "Address 3", City = "City 3", State = "State 3", UserId = 3 });
address.Add(new Address { AddressLine = "Address 3 Dup", City = "City 3", State = "State 3", UserId = 3 });
}
}
ちょうどノートでは...私は可能であればそれを修正することを検討します。アドレス付きのユーザーIDを格納するのは悪い設計です。 2人のユーザーが同じ住所に住んでいる場合はどうなりますか?実際には多対多の関係、つまりユーザーIDと住所IDを持つ中間テーブルを格納する必要があります。 –
これは単なる例です。元のコードを投稿することはできません。それはセキュリティの違反ですので、私は親切なダミーデータを作成しました。私はこのスキーマ設計が間違っていることに同意する。 –
LINQはforeachも使用します。 [ここをクリック](https://referencesource.microsoft.com/) – Badiparmagi