合并基于索引c#的两个具有相同记录数的列表

时间:2017-06-23 12:22:46

标签: c# .net list

我有两个下面提到的分类

public class NameDTO
{
    public string Name;
}

public class ValDTO
{
    public string Val;
}

对于名称,我将获得列表,如下图所示 result for names list

我正在获取值的结果,如下图所示

result of values

我的列表都计算了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());

此外,我尝试了很多示例,但无法提供我需要的输出。我认为可能有一种基于列表索引的简单方法,但我无法确切地知道需要什么。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

假设你有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));

将返回IEnumerable的KeyValue对。如果需要,您可以替换为其他类型,但这可以帮助您了解如何使用Zip