У меня есть этот код, который создает список (Of String), каждая строка содержит строку CSV, которая анализируется и разделяется.
Входная строка имеет формат: ривароксабан, цетиризин , фуросемид, ультрабрижален, парацетанол, нитрофурантоин, вакомицин, тиамин, TOD
Dim dView As GridView = view1.GetDetailView(view1.FocusedRowHandle, view1.GetVisibleDetailRelationIndex(view1.FocusedRowHandle))
Dim f = dView.GetFocusedRowCellValue("FormName")
Dim l = dView.GetFocusedRowCellValue("Label")
Dim path As String = "Y:\Temp\" & l & ".xls"
Dim mylist As New List(Of String)
Dim t As TextInfo = New CultureInfo("en-GB", False).TextInfo
Dim myarray As String()
Dim Lines() = PatientList.ExortValues(f, l).ToArray
Dim delimiters As Char() = {","c, ";"c, " "c, ControlChars.CrLf}
For Each line In Lines
For Each item In line.Split(delimiters, StringSplitOptions.RemoveEmptyEntries)
mylist.Add(t.ToTitleCase(item).Trim)
Next
Next
mylist.Sort()
Using writer As StreamWriter = New StreamWriter(path)
Dim dList = mylist.Distinct
dList.ForEach(Sub(c) writer.WriteLine(c))
'Debug.Print(grp)
End Using
Когда я просматриваю выходные данные StreamWriter, я вижу дубликаты в файле
+-------------+
| Allopunnol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurinol |
+-------------+
| Allopurnol |
+-------------+
Я также пробовал Dim g = mylist.GroupBy(Function(x) x.Trim).OrderByDescending(Function(z) z.Key).Select(Function(h) h.Key)
Мне кажется, что мне чего-то не хватает, но я не могу этого понять.
Изменить : mylist.Distinct.ToList
не влияет на вывод. Еще остаются дубликаты.