我有 2 个数组object
。第一个对象数组具有我想复制到其他数组的属性。
第一个对象数组
HotelRoomResponse[] hr=new HotelRoomResponse[100];
第二个对象数组
RateInfos[] rt = new RateInfos[100];
现在我想做的是复制第一个数组的属性,比如
rt=hr[].RateInfo;
但它给出了错误。这样做的正确方法是什么????
你不能像那样投影一个数组。您实际上必须循环 - 尽管您不需要在自己的代码中手动执行此操作。LINQ 让它变得非常简单,例如:
RateInfos[] rt = hr.Select(x => x.RateInfo).ToArray();
或者你可以使用Array.ConvertAll
:
RateInfos[] rt = Array.ConvertAll(hr, x => x.RateInfo);
在这两种情况下,某个地方仍然存在一个循环 - 它只是不在您的代码中。
如果您对 C# 很陌生并且还不了解 LINQ、lambda 表达式、委托等,那么您可以自己编写代码:
RateInfos[] rt = new RateInfos[hr.Length];
for (int i = 0; i < rt.Length; i++)
{
rt[i] = hr[i].RateInfo;
}
所有这三个将达到相同的结果。
ToArray()
to更改ToList()
为获取 aList<RateInfos>
而不是数组等。ConvertAll
对于List<T>
.RateInfos[] rt = hr.Select(item => item.RateInfo).ToArray();
使用 LINQ:
RateInfos[] rt = hr.Select(x => x.RateInfo).ToArray();