C# 分解集合并保存一些字段。
我有以下课程:C# 分解集合并保存一些字段。,c#,linq,collections,C#,Linq,Collections,我有以下课程: class Item { public string[] field1; public int field2; } 我收集了很多东西。如何将这些集合转换为 class Item { public string field1; public int field2; } 我的意思是类似于项目。选择many(x=>x.field1)但我需要为集合中的每个元素保存filed2值 范例 field1:{"asd","asdf","fscsd"} fiel
class Item
{
public string[] field1;
public int field2;
}
我收集了很多东西。如何将这些集合转换为
class Item
{
public string field1;
public int field2;
}
我的意思是类似于项目。选择many(x=>x.field1)
但我需要为集合中的每个元素保存filed2
值
范例
field1:{"asd","asdf","fscsd"}
field2:123
->
field1:{"asd"}
field2:123
field1:{"asdf"}
field2:123
field1:{"fscsd"}
field2:123
试试这个:
var res = Items.SelectMany(x => x.field1.Select(s => new {field1=s, x.field2}));
您将获得匿名对象的可枚举性,每个对象有两个字段-field1
和field2
尝试以下操作:
var res = Items.SelectMany(x => x.field1.Select(s => new {field1=s, x.field2}));
您将获得匿名对象的可枚举性,每个对象都有两个字段-
field1
和field2
我认为这符合其目的:
首先,将您的类更改为:(都是不同的名称)
然后,此函数将第一个类划分为两个(或更多)其他类
public Item[] splitItems(Items item)
{
Item[] items = new Item[item.field1.length];
for(int i=0;i<item.field1.length;i++)
{
items[i].field1 = item.field1[i];
items[i].field2 = item.field2;
}
return items;
}
Items mainItem = new Items();
mainItem.field1 = {"asd","asdf","fscsd"};
mainItem.field2 = 123;
Item[] tempItems = splitItems(mainItem);
public Item[]拆分项目(Items)
{
Item[]items=新项[Item.field1.length];
对于(int i=0;i我认为这符合其目的:
首先,将您的类更改为:(都是不同的名称)
然后,此函数将第一个类划分为两个(或更多)其他类
public Item[] splitItems(Items item)
{
Item[] items = new Item[item.field1.length];
for(int i=0;i<item.field1.length;i++)
{
items[i].field1 = item.field1[i];
items[i].field2 = item.field2;
}
return items;
}
Items mainItem = new Items();
mainItem.field1 = {"asd","asdf","fscsd"};
mainItem.field2 = 123;
Item[] tempItems = splitItems(mainItem);
public Item[]拆分项目(Items)
{
Item[]items=新项[Item.field1.length];
对于(int i=0;i@svick我可以用循环来做,但这不是一个优雅的解决方案。所以…这就是我为什么问的原因community@svick我可以用循环来做,但这不是一个优雅的解决方案。所以…这就是我问社区的原因