[英]Update IList<T> from another IList<T>
我有兩個ILists。
IList<CustomClassOne>
類型的用戶,以及
IList<CustomClassTwo>
類型的聯系人。
這兩個類都有唯一的ID。 我需要使用CustomClassTwo的屬性“ Info”來填充CustomClassOne的屬性“ Description”。
foreach (CustomClassOne user in users )
{
if (!string.IsNullOrEmpty(user.Description))
{
long id = user.ID;
string desc = user.Description;
var temp = contacts.Select(p => p.ID = id);
...
...
}
else
continue;
}
聽起來您需要使用Join
:
foreach (var pair in users.Join(contacts, u => u.ID, c => c.ID, Tuple.Create))
{
pair.Item1.Description = pair.Item2.Info;
}
或者,如果您更喜歡查詢語法 :
var pairs =
from user in users
join contact in contacts on user.ID equals contact.ID
select new { user, contact };
foreach (var pair in pairs)
{
pair.user.Description = pair.contact.Info;
}
您可以使用Join
將兩種類型匹配在一起,然后可以迭代匹配並應用更改。
var query = from contact in contacts
join user in users
on contact.Id equals user.Id
into users
select new
{
contact,
users,
}
foreach(var match in query)
foreach(var user in match.users)
{
user.Description = match.contact.Info;
}
您可以在foreach循環中進行搜索,如果找到,則將其分配給CustomClassOne實例:
foreach (CustomClassOne item in users)
{
var temp = contacts.Find(c => c.ID == item.ID);
item.Description = temp == null ? item.Description : temp.Info;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.