繁体   English   中英

将一个项目的值从列表复制到 c# 中的另一个

[英]Copy value of one item from a list into another in c#

NET,我需要将一个列表中的 object 项的值复制到另一个列表中,这就是我所拥有的:

List<Business> businesses; // from where I want to copy the value
PaginationResult<Business> paginatedBusinesses // contains the final list

分页类型的结果里面有一个列表:

public class PaginationResult<T>
{
    public PaginationResult();

    //
    // Summary:
    //     This is the collection of paged items
    public List<T> Items { get; set; }

Business object 包含以下属性:

    public class Business : IAggregateRoot
{
    /// <summary>
    /// Unique identifier of the business
    /// </summary>
    public Guid Id { get; set; }

    ...

    /// <summary>
    /// The epoch timestamp this user last accessed this business.
    /// </summary>
    public long? LastAccessed { get; set; }

在这里,我将 paginatedBusiness 列表的项目转换为 Business class:

var paginatedBusinesses = results.ConvertItems<Business>((i) => i.ToDomainEntity());

我需要将企业列表中的 LastAccessed 值复制到paginatedBusinesses.Items 中。 搜索 Id(两个列表的 id 具有相同的值,但在第一个列表中我们有 LastAccessed 值,而在最终列表中我们没有它)。 我该怎么做? 我尝试过类似的东西:

paginatedBusinesses.Items.AddRange(businesses.Select(i => i.LastAccessed));

但它不起作用,我怎么能把它放在对应的 object 中(具有相同 id 的那个),我也试过用 foreach 但不知道该怎么做。 有任何想法吗? 谢谢!

如果我理解正确: pagenatedBusinesses.Itemsbusinesses列表都包含具有相同 ID 的Business对象。

问题:如何将LastAccessed值从businesses列表中的项目复制到具有相同IdpagenatedBusinesses.Items列表中的项目?

如果正确,则以下代码会将LastAccessed值从businesses列表中的Business对象复制到pagenatedBusinesses.Items列表中具有相同IdBusiness对象中:

paginatedBusinesses.Items
    .Join(
        businesses, 
        p => p.Id, b => b.Id, 
        (p, b) => new {PagenatedBusiness = p, b.LastAccessed})
    .ToList()
    .ForEach(i => i.PagenatedBusiness.LastAccessed = i.LastAccessed);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM