Bry*_*ver 4 .net c# linq loops
我在使用一小段代码时遇到了麻烦.
我有一个MapItem类的列表,其中包含一些属性,Address和Html,我需要使用相同的Address属性连接每个项目的Html属性.例如:
firstMapItem = new MapItem { Address = "1122 Elm Street",
Html="<p>some html</p>" };
secondMapItem = new MapItem { Address = "1122 Elm Street",
Html="<p>different html</p>" };
Run Code Online (Sandbox Code Playgroud)
会成为:
firstMapItem.Address == "1122 Elm Street";
firstMapItem.Html == "<p>some html</p><p>different html</p>";
secondMapItem.Address == "1122 Elm Street";
secondMapItem.Html == "<p>some html</p><p>different html</p>";
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所尝试的:
foreach (MapItem item in mapItems)
{
var sameAddress = from m in mapItems
where m.Address == item.Address
select m;
if (sameAddress.Count() > 1)
{
//tried inserting -> item.Html = ""; right here as well
foreach (MapItem single in sameAddress)
{
item.Html += single.Html;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我可能会让它变得比它需要的更复杂.
提前致谢.
您可以分组Address
,然后连接Html
值:
var results = from m in mapItems
group m by m.Address into ms
select new MapItem
{
Address = ms.Key,
Html = string.Concat(ms.Select(m => m.Html))
};
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
207 次 |
最近记录: |