Список заливки <интервал>, использующий LINQ

Спасибо за все ответы.

кажется, что "надлежащий" ответ зависит от контекста, в котором создается список разделенных запятой значений. У меня нет аккуратного списка объектов для использования (должен был использовать что-то для примера...), но у меня действительно есть массив, объекты которого могут или не могут быть добавлены к разделенному списку запятой в зависимости от различных условий.

, Таким образом, я выбрал что-то к эффекту


strResult = ""
strSeparator = ""
for i as integer = 0 to arrItems.Length - 1
  if arrItems(i) <> "test" and arrItems(i) <> "point" then
    strResult = strResult & strSeparator & arrItem(i)
    strSeparator = ", "
  end if
next

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

Снова, благодаря всем для Вашего входа.

BTW, исходное сообщение с "первое, что пришло на ум" примером кода не фильтрует нулевые объекты длины, вместо этого это ожидает строки результата для становления больше, чем нулевая длина прежде, чем добавить запятую. Вероятно, не очень эффективный, но я have'nt протестировал его. Снова, это было первое, что пришло на ум.

7
задан nawfal 31 May 2013 в 00:08
поделиться

4 ответа

Вы могли бы сделать так:

Random rnd = new Random();
List<int> = Enumerable.Range(0,10).Select(n => rnd.Next(-50, 51)).ToList();
14
ответ дан 6 December 2019 в 10:02
поделиться
var r = new Random();

var l = Enumerable.Range(0, 10).Select(x => r.Next(100) - 50).ToList();
2
ответ дан 6 December 2019 в 10:02
поделиться

Конечно, что-то вроде ...

Random r = new Random();
var ints = Enumerable.Range(0, 50).OrderBy(i => r.Next());
2
ответ дан 6 December 2019 в 10:02
поделиться

Чтобы добавить вариацию, вы можете создать очень простой статический метод вроде этого:

    public static IEnumerable<int> RandomSequence(int minValue, int maxValue)
    {
        Random r = new Random();
        while (true)
            yield return r.Next(minValue, maxValue);
    }

И затем использовать его так:

    var numbers = RandomSequence(-50, 50).Take(10));

    foreach(var number in numbers)
        Console.WriteLine(number);

Мне нравится yield return ... хе-хе c ",)

1
ответ дан 6 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: