gpt4 book ai didi

c# - 使用 LINQ 将 List 转换为 List

转载 作者:IT王子 更新时间:2023-10-29 03:53:01 28 4
gpt4 key购买 nike

我有 2 个类,它们具有一些相同的属性。我从第一类存入列表属性,然后,我想获取一些需要的属性并将它们放入第二类类型的列表中。我已经通过 C# 制作了转换序列并且运行正常,但我必须使用 LINQ。我试图做一些事情,但没有很好的结果。请帮助我提出建议。

第一类:

   public class ServiceInfo {
private long _id;
public long ID {
get { return this._id; }
set { _id = value; }
}

private string _name;
public string Name {
get { return this._name; }
set { _name = value; }
}

private long _qty;
public long Quantity {
get { return this._qty; }
set { _qty = value; }
}

private double _amount;
public double Amount {
get { return this._amount; }
set { _amount = value; }
}

private string _currency;
public string Currency {
get { return this._currency; }
set { _currency = value; }
}

private DateTime? _date;
public DateTime? Date {
get { return this._date; }
set { _date = value; }
}
}

第二类:

class InvoiceWithEntryInfo {
private string currencyField;

private long IdField;
public long IdIWEI {
get { return this.IdField; }
set { IdIWEI = value; }
}

private string nameField;
public string NameIWEI {
get { return this.nameField; }
set { NameIWEI = value; }
}

private long qtyField;
public long QuantityIWEI {
get { return this.qtyField; }
set { QuantityIWEI = value; }
}

private double amountField;
public double AmountIWEI {
get { return this.amountField; }
set { AmountIWEI = value; }
}

private DateTime dateField;
public DateTime? DateIWEI {
get { return this.dateField; }
set { DateIWEI = value; }
}

public string OwnerIWEI {
get; set;
}
}

运行正常的 C# 示例:...

var sil = new List<ServiceInfo>();
var iweil = new List<InvoiceWithEntryInfo>();

...

if (sil != null)
{
foreach (ServiceInfo item in sil)
{
iweil.Add(new InvoiceWithEntryInfo
{
IdIWEI = item.ID,
AmountIWEI = item.Amount,
DateIWEI = item.Date
});
}

无法正常运行的 LINQ 示例:

iweilCOPY = sil.ConvertAll<InvoiceWithEntryInfo>(a => (InvoiceWithEntryInfo)a);

iweilCOPY = sil.FindAll(a => (sil is InvoiceWithEntryInfo)).ConvertAll<InvoiceWithEntryInfo>(a => (InvoiceWithEntryInfo)a);

最佳答案

var iweilCopy = sil.Select(item => new InvoiceWithEntryInfo()
{
IdWEI = item.Id,
NameWEI = item.Name,
....
}).ToList();

关于c# - 使用 LINQ 将 List<U> 转换为 List<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7075572/

28 4 0