这似乎是一个棘手的问题。我希望你的专家很容易。我想知道这是否可以使用LINQ。LINQ查询修改列表
这里是我的名单:
ABC,1,RON,26,73
CDE,13,JON,21,18
ERROR,ERROR LINE,ERROR LINE,DEF
DEF,NOT AVAILABLE,"",JANE,32,13
GHI,23,DAWN,14,25
我需要完成两件事情与此列表:
- 移动与错误的行和下一行到列表
- 底部ERROR之后的下一行(以“DEF”开头的行)必须进行修改,以便所有字段都排列成正确的字段。但是,我仍然应该在ERROR行之后。
的最终名单应该是这样的:
ABC,1,RON,26,73
CDE,13,JON,21,18
GHI,23,DAWN,14,25
ERROR,ERROR LINE,ERROR LINE,DEF
DEF,NOT AVAILABLE,JANE,32,13
现在,我的完整,详细的LINQ查询看起来是这样的:如果你想
var myList = (File.ReadLines(myFile.ToString(), Encoding.GetEncoding(1250)))
.ToList()
.OrderBy(l => l[0].ToString())
.Select(l => new specialclass {
Comp = l[0].ToString(),
Place = Convert.ToInt32(l[1].ToString()),
Name = l[2].ToString(),
Limit = Convert.ToInt32(l[3].ToString()),
Limit2 = Convert.ToInt32(l[4].ToString())
});
这些数据是如何真正安排的?显示一些代码。这对我来说看起来不太像。 – Yuck 2012-03-09 20:22:34
当你用linq枚举它的时候,你不能修改某些东西,所以这个问题看起来是无效的。此外,它很难理解“我的名单”是什么。每行都是列表中的对象?或者你是在谈论通过Linq运行更新查询到Sql? –
Will
2012-03-09 20:23:56
我正在阅读具有双空格作为分隔符的旧文本文件。为了简单起见,我使用了逗号。现在,我的完整,详细的LINQ查询如下所示:var myList =(File.ReadLines(myFile.ToString(),Encoding.GetEncoding(1250)))。ToList() \t .OrderBy(l => l [0 ]。的ToString()) \t。选择(L =>新specialclass \t { \t \t小样= 1 [0]的ToString(), \t \t地方= Convert.ToInt32(L [1]的ToString()), \t \t名称= 1 [2]的ToString(), \t \t极限= Convert.ToInt32(L [3]的ToString()), \t \t LIMIT2 = Convert.ToInt32(升[4]的ToString() ) \t}); – 2012-03-09 20:34:58