List<string> list1 = new List<string>(){"刘1","张1","王1"};
List<string> list2 = new List<string>(){"刘2","张2","王2"};
List<string> list3 = new List<string>(){"刘3","张3","王3"};
三个集合,给定条件是每个集合的元素个数一样多,要求把每个集合的同样索引值位置的字符串连接起来组成新的字符串,集合排的顺序要求从上到下排,也就是先排list1,再拍list2,再排list3
最后把所有组合后的字符串,再装进一个集合上面的查询结果为:
List<string> list_查询 = new List<string>(){"刘1刘2刘3","张1张2张3","王1王2王3"};
谢谢!
List<string> list2 = new List<string>(){"刘2","张2","王2"};
List<string> list3 = new List<string>(){"刘3","张3","王3"};
三个集合,给定条件是每个集合的元素个数一样多,要求把每个集合的同样索引值位置的字符串连接起来组成新的字符串,集合排的顺序要求从上到下排,也就是先排list1,再拍list2,再排list3
最后把所有组合后的字符串,再装进一个集合上面的查询结果为:
List<string> list_查询 = new List<string>(){"刘1刘2刘3","张1张2张3","王1王2王3"};
谢谢!
void Main()
{
List<string> list1 = new List<string>(){"刘1","张1","王1"};
List<string> list2 = new List<string>(){"刘2","张2","王2"};
List<string> list3 = new List<string>(){"刘3","张3","王3"};
List<string> list_查询= (from l1 in list1.Select((l,i)=>new {l,i})
join l2 in list2.Select((l,i)=>new {l,i})
on l1.i equals l2.i
join l3 in list3.Select((l,i)=>new {l,i})
on l2.i equals l3.i
select string.Format("{0}{1}{2}",l1.l,l2.l,l3.l)).ToList();
list_查询.ForEach(l=>Console.WriteLine(l));
/*
刘1刘2刘3
张1张2张3
王1王2王3
*/
}
void Main()
{
List<string> list1 = new List<string>(){"刘1","张1","王1"};
List<string> list2 = new List<string>(){"刘2","张2","王2"};
List<string> list3 = new List<string>(){"刘3","张3","王3"};
List<string> list_查询= (from l1 in list1.Select((l,i)=>new {l,i})
join l2 in list2.Select((l,i)=>new {l,i})
on l1.i equals l2.i
join l3 in list3.Select((l,i)=>new {l,i})
on l2.i equals l3.i
select string.Format("{0}{1}{2}",l1.l,l2.l,l3.l)).ToList();
}
{ List<List<string>> oldStringList = new List<List<string>>()
{
new List<string>() { "刘1", "张1", "王1" },
new List<string>() { "刘2", "张2", "王2" },
new List<string>() { "刘3", "张3", "王3" }
}; List<string> newStringList = new List<string>(); foreach (List<string> stringList in oldStringList)
{
int i = 0;
while (i<stringList.Count)
{
string s = stringList.ElementAtOrDefault(i);
if (newStringList.Count > i)
{
string s1 = newStringList[i] + s;
newStringList[i] = s1;
}
else
{
newStringList.Add(s);
} i++;
}
} }
{
List<List<string>> oldStringList = new List<List<string>>()
{
new List<string>() { "刘1", "张1", "王1" },
new List<string>() { "刘2", "张2", "王2" },
new List<string>() { "刘3", "张3", "王3" },
new List<string>() { "刘4", "张4", "王4" }
};
List<string> query=(from x in oldStringList.SelectMany(o=>o).Select((o,i)=>new {o,i})
let length=oldStringList.First().Count()
group x by x.i%length into g
select string.Join("",g.Select(y=>y.o).ToArray())).ToList();
query.ToList().ForEach(q=>Console.WriteLine(q));
/*
刘1刘2刘3刘4
张1张2张3张4
王1王2王3王4
*/
}
1. 所有子List的count必须大于1
2. 所有子List的count必须相等,如你提问中所说(给定条件是每个集合的元素个数一样多)
空的集合 也没意思,过滤掉就是了