どう書く?
なぜか今日はC#で
こんな定義のエンティティがあったとして、
どう書こう
var users = new List<User>()
{
new User{ Name = "karua", Age = 28, Address = new Address() { ZipCD = "XXXXXX", CityName="Tokyo"}},
new User{ Name = "hara"},
new User{ Name = "om", Address = new Address(){ ZipCD = ""}}
};
class User
{
public string Name { get; set; }
public int Age { get; set; }
public Address Address { get; set; }
}
class Address
{
public string ZipCD { get; set; }
public string CityName { get; set; }
}
// ユーザのコレクションから住所が不明なユーザを削除する
ListnewUserList = new List ();
for (int index = 0; index < users.Count; index++)
{
if (users[index].Address != null)
{
newUserList.Add(users[index]);
}
}// C# 2.0
users.RemoveAll(delegate(User user)
{
return user.Address == null;
});// C# 3.0
users.RemoveAll(user => user.Address == null);// ユーザのコレクションから県がTokyoのユーザを取得する
// C#2.0
// FindAll
users.FindAll(delegate(User user)
{
return (user.Address == null) ? false: user.Address.CityName == "Tokyo";
});users.FindAll(user=>(user.Address == null) ? false: user.Address.CityName == "Tokyo");
// LINQ
users.Where(delegate(User user)
{
return (user.Address == null) ? false : user.Address.CityName == "Tokyo";
});users.Where(user=> (user.Address == null) ? false: user.Address.CityName == "Tokyo");
var a = from user in users
where user.Address.CityName == "Tokyo"
select user;