大家好,提前感谢。
我有两个列表:
String[] a = new String []{"A","B", "C"};
String[] num = new String []{"1","2" ,"3"};
和linq查询:
var gridview = (from A in a
from num in Num
select new
{
TName = A,
RName = Num
}).Distinct().ToList();
GridViewList.DataSource = gridview;
GridViewList.DataBind();
生成如下输出:
1 A
2 A
3 A
1 B
2 B
3 B
1 C
2 C
3 C
我想要的输出是:
1 A
2 B
3 C
所以我认为我可以使用连接,但如果我没有一个id来引用呢?
改成:
var gridview = a.Zip(num, (t, r) => new
{
TName = t,
RName = r
}).ToList();
这里要做的是压缩列表
var gridview = a.Zip(num, (A,n)=>new{TName = A,RName = n}).ToList();
见http://msdn.microsoft.com/en-us/library/dd267698 (v = vs.110) . aspx
您可以使用Zip
:
var result = a.Zip(num, (s, n) => n.ToString() + " " + s);
您需要使用Zip
而不是Join
,假设需求是合并两个长度相等的列表
您可以使用以下方法:
var res = a.Select((x,i) => new {TName = x, RName = num[i]}).ToList();