我有下面提到的两个类
public class NameDTO
{
public string Name;
}
public class ValDTO
{
public string Val;
}
对于名称,我正在获取如下图所示的列表 result for names list
我得到的值的结果如下图所示
我的两个列表都给出了 96 个值。我正在尝试根据索引位置合并两个结果,即我正在尝试将 listnames
第一个值的输出与 listvalues
的结果相匹配。
account-Ind : A...等
我试过了
var objects = _nameDetials.Zip(_valDetials, (val, type) => Convert.ChangeType(val, type));
和
List<Object> allS = (from x in _nameDetials
select (Object)new {
someAnotherThing = x.Name,
something = string.Empty }).ToList();
allS.AddRange((from x in _valDetials
select (Object)new {
someAnotherThing = string.Empty,
something = x.Val }).ToList());
此外,我尝试了很多示例,但无法得出我需要的输出。我认为可能有一种基于列表索引的简单方法,但我无法弄清楚到底需要什么。
如有任何帮助,我们将不胜感激。
最佳答案
假设您有 IEnumerables:
IEnumerable<NameDTO> _nameDetials = new List<NameDTO>() { new NameDTO() { Name = "A" }, new NameDTO { Name = "B" } };
IEnumerable<ValDTO> _valDetials=new List<ValDTO>() { new ValDTO() { Val = "1" }, new ValDTO() { Val = "2" } };
var combined = _nameDetials.Zip(_valDetials, (name, val) => new KeyValuePair<NameDTO, ValDTO>(name, val));
将返回 KeyValue 对的 IEnumerable。如果需要,您可以替换为另一种类型,但这应该有助于您了解如何使用 Zip
关于c# - 基于索引 c# 合并两个具有相同记录数的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44721348/