繁体   English   中英

读取CSV文件,然后排序,然后再次使用数组

[英]CSV file read, then sort, then use array again

请在这种情况下提供任何帮助.. C#的新手。

摘要:

  1. 需要将csv的内容读入数组。
  2. 跳过数组的第一行,然后在第1列(公司)上排序
  3. 然后在代码中进一步使用排序后的数组(如果没有标题,则没有标题)。

范例csv:

 Company,Item,Vendor
 Comp1,Bulb,BnQ
 Comp2,Plug,Tesco
 Comp1,Kettle,Wickes

这是我的尝试,但是尝试访问sorted [j]时出现以下错误,我无法解决此问题。

无法将带有[]的索引应用于类型'System.Collections.Generic.IEnumerable的表达式

码:

var csvRows = System.IO.File.ReadAllLines(filename).Skip(1);
var sorted = csvRows.Select(line => new
                {
                    SortKey = Int32.Parse(line.Split(',')[0]),
                    Line = line
                })
                .OrderBy(x => x.SortKey)
                .Select(x => x.Line);

int maxCount = sorted.Count();

for (int j = 0; j < maxCount; j++)
{
 string line1 = sorted[j].ToString();
 var values = line1.Split(',');
...

您需要在LINQ查询的末尾添加.ToList().ToArray() ,否则已排序的变量是IEnumerable而不是列表或数组,因此无法使用索引访问它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM