我在字符串中有一些C#代码,如下所示:
content = 'var expData =
details.Select(x => x.Explanation.TextWithHtml).ToList();
var score = resData.SequenceEqual(ansData);
var explanation = "";';
如何使用LINQ将代码转换为以下内容?
<td>01</td><td>var expData =
details.Select(x => x.Explanation.TextWithHtml ).ToList();</td>
<td>02</td><td>var score = resData.SequenceEqual(ansData);</td>
<td>03</td><td>var explanation = "";</td>
答案 0 :(得分:8)
听起来你想要这样的东西:
var lines = text.Split(new[] { "\r\n" }, StringSplitOptions.None)
.Select((line, index) =>
string.Format("<td>{0:00}</td><td>{1}</td>",
index + 1, EscapeHtml(line)));
您需要编写EscapeHtml
- 您不希望C#代码中的标记最终仍然是HTML中的标记!
答案 1 :(得分:4)
这应该有效,您可以从Enumerable.Select
获取索引:
IEnumerable<String> code =
content.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
.Select((line, index) =>
string.Format("<td>{0}</td><td>{1}</td>",
(index + 1).ToString("D2"), line));