我有两个列表List<int> and List<SharedCroList>
。
public class SharedCroList
{
public int CRO1Id { get; set; }
public int CRO2Id { get; set; }
}
List<int> _cro1ReceiptEmpId = _receiptList
.Where(r => r.StudentRegistration.StudentWalkInn.CROCount == 1)
.Select(r => r.StudentRegistration.StudentWalkInn.Employee1.Id)
.ToList();
//if walkinn is shared one
List<SharedCroList> _cro2ReceiptEmpId = _receiptList
.Where(r => r.StudentRegistration.StudentWalkInn.CROCount == 2)
.Select(r => new SharedCroList
{
CRO1Id=r.StudentRegistration.StudentWalkInn.Employee1.Id,
CRO2Id=r.StudentRegistration.StudentWalkInn.Employee2.Id
})
.ToList();
我的目标是将这两个列表连接成一个。我怎么能这样做?
我尝试了concatenate
方法,但它不起作用?
答案 0 :(得分:1)
你不能用2种不同的类型连接2个列表。
因此,您最好将第一个列表(_cro1ReceiptEmpId)转换为第二个列表,并使用AddRange()
进行连接。
例如:
List <SharedCroList> temp = _cro1ReceiptEmpId.Select(x => new SharedCroList { CRO1Id = x, CRO2Id = 0 }).ToList();
List<SharedCroList> ConcatinatedList = _cro1ReceiptEmpId.AddRange(_cro2ReceiptEmpId);
编辑:
如果您希望输出成为列表,则需要将第二个列表转换为2个单独的List<int>
:
List<int> listOfCRO1Id = _cro2ReceiptEmpId.Select(x=>x.CRO1Id).ToList();
List<int> listOfCRO2Id = _cro2ReceiptEmpId.Select(x=>x.CRO2Id).ToList();
List<int> FinalList = listOfCRO1Id.Concat(listOfCRO2Id).Concat(_cro1ReceiptEmpId).ToList();