2016-02-19 81 views
2

我有以下代码(我是初学者);LINQ to Object Basic

string myVar = "abcd"; 
var myQuery = from x in myVar select x;  
MessageBox.Show(string.Join("\n", myQuery)); 

我想要这样的结果;

1 a 
2 b 
3 c 
4 d 

请提出一些提示。

谢谢。

+0

杰森,这是学校的工作/家庭作业的问题?如果是这样,我想建议你先不用LINQ来做,这样你就能理解幕后发生了什么。 – Joe

+0

@Joe ..谢谢你的提示。我可以在没有LINQ的情况下处理它。现在我在Albabari兄弟的第8章“LINQ”。 (我在第385页发现了第二个参数,但它缺少“仅Fluent语法”)。 – Jason

+0

“本地查询”是指流利的语法? – Jason

回答

8

您应该使用Select运算符超载,它接受项目的索引。 (可惜这不是在查询语法提供):

String.Concat(myVar.Select((ch,i) => $"{i + 1} {ch}\n")) 

更新:@Mattew正确地注意到,该代码将在年底增加额外\n。如果不好,那么你应该使用String.Join。也可以考虑使用Environment.NewLine从而为Windows平台的新线串\r\n

String.Join(Environment.NewLine, myVar.Select((ch,i) => $"{i + 1} {ch}")) 
+1

哇。很简单。第二个理由......好的。我会马上查看它。谢谢。 – Jason

+0

我加了1号“(i + 1)”。奇迹般有效。再次感谢。 – Jason

+1

需要注意的是,与OP例子相比,这将增加额外的线路费用。 –