我通過網絡API使用此代碼正從一個CSV文件的項目清單:獲取CSV列第一個值沒有重複
private List<Item> items = new List<Item>();
public ItemRepository()
{
string filename = HttpRuntime.AppDomainAppPath + "App_Data\\items.csv";
var lines = File.ReadAllLines(filename).Skip(1).ToList();
for (int i = 0; i < lines.Count; i++)
{
var line = lines[i];
var columns = line.Split('$');
//get rid of newline characters in the middle of data lines
while (columns.Length < 9)
{
i += 1;
line = line.Replace("\n", " ") + lines[i];
columns = line.Split('$');
}
//Remove Starting and Trailing open quotes from fields
columns = columns.Select(c => { if (string.IsNullOrEmpty(c) == false) { return c.Substring(1, c.Length - 2); } return string.Empty; }).ToArray();
var temp = columns[5].Split('|', '>');
items.Add(new Item()
{
Id = int.Parse(columns[0]),
Name = temp[0],
Description = columns[2],
Photo = columns[7]
});
}
}
項目列表的名稱屬性必須來自列,其結構如下:
Groups>Subgroup>item
因此我使用var temp = columns[5].Split('|', '>');
在我的代碼「>」之前得到該列的第一個元素,其中在上述情況中是羣組。這工作正常。
但是,我在結果中得到很多重複。這是因爲,在列的其他項目可能是:
(這些都是一些項目在我的CSV列9) Groups>Subgroup2>item2
,Groups>Subgroup3>item4
,Groups>Subgroup4>item9
全部開始Groups
,但我只想要得到Groups
一旦。
因爲它是我得到一長串Groups
。我如何停止重複?
我希望如果列表中的項目與Name
「組」一起返回,則不會返回具有該名稱的其他項目。我如何進行檢查並實施?