复制通用列表
Copying the Generic List
我有 2 个通用列表,例如:
public class List1
{
public string Tag { get; set; }
public byte[] Resim1 { get; set; }
public byte[] Resim2 { get; set; }
}
public class List2
{
public string Tag { get; set; }
public byte[] Resim { get; set; }
}
我需要将 list1
项逐一复制到 list2
。
例如 list1
项是:
Tag = 1
Resim1 = cıvata
Resim2 = somun
Tag = 2
Resim1 = vida,
Resim2 = tornavida
我需要将这些项目复制到 list2
喜欢
Tag = 1
Resim =cıvata
Tag = 1
Resim = Somun
Tag = 2
Resim = vida
Tag = 2
Resim = tornavida
知道怎么做吗?
不清楚你想做什么,但如果你想从现有的 List1 对象集合填充 List2 对象的集合,这里有一种方法(使用 Linq):
// List<List1> list1Coll = new List<List1>();
// list1Coll.Add( .... )
List<List2> list2Coll = list1Coll.Select(o => new List2() { Tag = o.Tag, Resim = o.Resim1 }).ToList();
您似乎想将 Resim1、Resim2 byte[] 拆分为 List2 类型的单个实例,但保留关联的 Tag?如果是这样,这将起作用:
设置
var lst1 = new List<List1>
{
new List1
{
Tag = "1",
Resim1 = Encoding.ASCII.GetBytes("cıvata"),
Resim2 = Encoding.ASCII.GetBytes("somun")
},
new List1
{
Tag = "2",
Resim1 = Encoding.ASCII.GetBytes("vida"),
Resim2 = Encoding.ASCII.GetBytes("tornavida")
},
};
然后:
var list2Collection = new List<List2>();
foreach (var item in lst1)
{
list2Collection.Add(new List2{ Tag = item.Tag, Resim = item.Resim1});
list2Collection.Add(new List2 { Tag = item.Tag, Resim = item.Resim2 });
}
很难看出您要做什么。我假设您正在制作两个列表,一个以您的 list1 作为项目,另一个以您的 list2 作为项目,例如:
List<List1> list1 = new List<List1>();
List<List2> list2 = new List<List2>();
这令人困惑,因为您的列表 class 不是列表,而是一个项目。尽管如此,有很多方法可以将第一个列表的项目添加到第二个列表中,最简单的就是迭代添加它们,例如:
foreach (List1 item in list1)
{
if (item.Resim1 != null)
list2.Add(new List2() { Tag = item.Tag, Resim = item.Resim1 });
if (item.Resim2 != null)
list2.Add(new List2() { Tag = item.Tag, Resim = item.Resim2 });
}
请记住,您的标签不会成为您的索引,您必须将您提供的示例值从字符串转换为 byte[]。
先纠正一下泛型列表的概念
执行以下操作
public class YourClassName1
{
public string Tag { get; set; }
public byte[] Resim1 { get; set; }
public byte[] Resim2 { get; set; }
}
public class YourClassName2
{
public string Tag { get; set; }
public byte[] Resim { get; set; }
}
现在您可以获得新的通用列表作为
var list1 = new List<YourClassName1>();
var list2 = new List<YourClassName2>();
输入后混合数据为
foreach(var item in list1)
{
list2.Add(new YourClassName2{Tag = item.Tag, Resim = item.Resim1});
list2.Add(new YourClassName2{Tag = item.Tag, Resim = item.Resim2});
}
我有 2 个通用列表,例如:
public class List1
{
public string Tag { get; set; }
public byte[] Resim1 { get; set; }
public byte[] Resim2 { get; set; }
}
public class List2
{
public string Tag { get; set; }
public byte[] Resim { get; set; }
}
我需要将 list1
项逐一复制到 list2
。
例如 list1
项是:
Tag = 1
Resim1 = cıvata
Resim2 = somun
Tag = 2
Resim1 = vida,
Resim2 = tornavida
我需要将这些项目复制到 list2
喜欢
Tag = 1
Resim =cıvata
Tag = 1
Resim = Somun
Tag = 2
Resim = vida
Tag = 2
Resim = tornavida
知道怎么做吗?
不清楚你想做什么,但如果你想从现有的 List1 对象集合填充 List2 对象的集合,这里有一种方法(使用 Linq):
// List<List1> list1Coll = new List<List1>();
// list1Coll.Add( .... )
List<List2> list2Coll = list1Coll.Select(o => new List2() { Tag = o.Tag, Resim = o.Resim1 }).ToList();
您似乎想将 Resim1、Resim2 byte[] 拆分为 List2 类型的单个实例,但保留关联的 Tag?如果是这样,这将起作用:
设置
var lst1 = new List<List1>
{
new List1
{
Tag = "1",
Resim1 = Encoding.ASCII.GetBytes("cıvata"),
Resim2 = Encoding.ASCII.GetBytes("somun")
},
new List1
{
Tag = "2",
Resim1 = Encoding.ASCII.GetBytes("vida"),
Resim2 = Encoding.ASCII.GetBytes("tornavida")
},
};
然后:
var list2Collection = new List<List2>();
foreach (var item in lst1)
{
list2Collection.Add(new List2{ Tag = item.Tag, Resim = item.Resim1});
list2Collection.Add(new List2 { Tag = item.Tag, Resim = item.Resim2 });
}
很难看出您要做什么。我假设您正在制作两个列表,一个以您的 list1 作为项目,另一个以您的 list2 作为项目,例如:
List<List1> list1 = new List<List1>();
List<List2> list2 = new List<List2>();
这令人困惑,因为您的列表 class 不是列表,而是一个项目。尽管如此,有很多方法可以将第一个列表的项目添加到第二个列表中,最简单的就是迭代添加它们,例如:
foreach (List1 item in list1)
{
if (item.Resim1 != null)
list2.Add(new List2() { Tag = item.Tag, Resim = item.Resim1 });
if (item.Resim2 != null)
list2.Add(new List2() { Tag = item.Tag, Resim = item.Resim2 });
}
请记住,您的标签不会成为您的索引,您必须将您提供的示例值从字符串转换为 byte[]。
先纠正一下泛型列表的概念
执行以下操作
public class YourClassName1
{
public string Tag { get; set; }
public byte[] Resim1 { get; set; }
public byte[] Resim2 { get; set; }
}
public class YourClassName2
{
public string Tag { get; set; }
public byte[] Resim { get; set; }
}
现在您可以获得新的通用列表作为
var list1 = new List<YourClassName1>();
var list2 = new List<YourClassName2>();
输入后混合数据为
foreach(var item in list1)
{
list2.Add(new YourClassName2{Tag = item.Tag, Resim = item.Resim1});
list2.Add(new YourClassName2{Tag = item.Tag, Resim = item.Resim2});
}