我对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);
答案 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)
由于您需要将oldlink
和newlink
同时作为结果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)
。