将两个数组列表值添加到arraylist c#

时间:2016-05-25 06:43:35

标签: c# arraylist

我对c#完全不熟悉,如果在这里被问到对你们来说毫无意义,我想知道如何解决这种情况。

我有两个arraylist's如下所示:

 ArrayList OldLinks = new ArrayList();
 ArrayList NewLinks = new ArrayList();
 ArrayList mylist   = new ArrayList();

 foreach (string oldlink in OldLinkArray)
     {
        OldLinks.Add(oldlink);
     }
 foreach (string newlink in NewLinkArray)
     {
         NewLinks.Add(newlink);
     }

现在我需要将它们作为单个arraylist,每个都有两个项目

我需要把它作为

ArrayList NewList = new ArrayList();

NewList.Add(oldlink, newLink);

3 个答案:

答案 0 :(得分:1)

ArrayList NewList = new ArrayList();
NewList.AddRange(OldLinks);
NewList.AddRange(NewLinks);

您可以使用AddRange()方法或AddAll()方法来完成此操作。

NewList.AddAll(OldLinks);
NewList.AddAll(NewLinks);

或者 要创建多维arrayList,您可以使用字典

 public class MultiDimList: Dictionary<string, string>  { }
 MultiDimList NewList = new MultiDimList ();
 for(int i; i<OldLinks.Count ; i++)
 {
   NewList.Add(OldLinks[i].ToString(), NewLinks[i].ToString()); 
 }

如果两个ArrayLists具有相同的计数

答案 1 :(得分:0)

Xou可以做类似这样的事情。字符串Version是problaby不是最好的解决方案,但可以工作。对不起代码经过注释测试

public class Link
    {
    public string Version {get;set;}
    public string Value {get;set;}
    }

使用它像

    List<Link> linkList = new List<Link>();
    linkList.AddRange(OldValues)
    linkList.AddRange(OldValues)

    var oldList = linkList.Where(l => l.Version.Equals("old")).ToList();
    var newList = linkList.Where(l => l.Version.Equals("new")).ToList()

答案 2 :(得分:0)

由于您需要将oldlinknewlink同时作为结果arraylist中的项目,因此您可以使用Zip Linq扩展名并执行此操作。

ArrayList NewList = new ArrayList();
NewList.AddRange(OldLinks.Cast<string>()
                         .Zip(NewLink.Cast<string>(), (x,y) =>  string.Format("{0},{1}",x,y))
                         .ToArray()
                ); 

结果ArrayList包含(oldlink, newlink)