我有两个IList。
IList<CustomClassOne>
和
IList<CustomClassTwo>
类型的联系人。
这两个类都有唯一的ID。我需要填写CustomClassOne的属性&#34;描述&#34;使用CustomClassTwo的属性&#34; Info&#34;。
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;
}
答案 0 :(得分:1)
听起来你需要使用Join
:
foreach (var pair in users.Join(contacts, u => u.ID, c => c.ID, Tuple.Create))
{
pair.Item1.Description = pair.Item2.Info;
}
或者如果您更喜欢query syntax:
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;
}
答案 1 :(得分:0)
您可以使用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;
}
答案 2 :(得分:0)
您可以在foreach循环中进行搜索,如果找到则分配给CustomClassOne实例:
foreach (CustomClassOne item in users)
{
var temp = contacts.Find(c => c.ID == item.ID);
item.Description = temp == null ? item.Description : temp.Info;
}