У меня есть таблица IP с двумя столбцами: IP и%, как лучше всего отсортировать эту таблицу по проценту IP?

enter image description here

Тип стола:

public List<string> statistics()
{

}
-1
user979033 7 Мар 2012 в 20:25

3 ответа

Лучший ответ

Предположим , что ваш столбец IpAddress является строкой, и вы просто хотите, чтобы значение этого столбца было отсортировано по убыванию в процентах (много предположений, поскольку ваш вопрос расплывчатый):

List<string> ips = IpTable.OrderByDescending(x=> x.Percentage)
                          .Select(x=> x.IpAddress)
                          .ToList();
0
BrokenGlass 7 Мар 2012 в 16:26

Вам нужно будет разделить строку на два столбца, проанализировать второй столбец на числа и затем упорядочить по этому столбцу.

        return from line in statistics
               let split = line.Split('\t', '%')
               let percentage = double.Parse(split[1])
               orderby percentage
               select line;

В этом коде вам нужно будет заменить символы разделения любыми символами, которые есть в каждой из ваших строк, а также заменить индексируемый столбец, но остальные должны работать так, как вам нужно.

0
Ani 7 Мар 2012 в 16:31

Я думаю, что каждая запись в вашем списке - это строка - если не игнорировать следующее ...

Сначала вам нужно преобразовать это в другой формат - не знаю, правда ли это, но я думаю, что между IP и вашим процентом есть табуляция ('\ t'), поэтому вы можете начать с чего-то вроде

var stringTupleList = 
   myList.Select(s => s.Split('\t'))
         .Select(ar => new { Ip = ar[0], PercentString = ar[1] });

Это дает вам список анонимных типов, и вы можете продолжить, как ответил BrokenGlass:

var stringTupleList = 
   myList.Select(s => s.Split('\t'))
         .Select(ar => new { Ip = ar[0], PercentString = ar[1] })
         .OrderByDescending(t => t.PercentString)
         .Select(t => t.Ip)
         .ToList();
0
Random Dev 7 Мар 2012 в 16:31