Concat всех строк внутри списка < string > используя LINQ

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

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

Я не знаю Java, поэтому я не могу представить пример, но я могу дать объяснение понятий.

493
задан shA.t 2 September 2017 в 08:41
поделиться

6 ответов

При помощи LINQ это должно работать;

string delimiter = ",";
List<string> items = new List<string>() { "foo", "boo", "john", "doe" };
Console.WriteLine(items.Aggregate((i, j) => i + delimiter + j));

описание класса:

public class Foo
{
    public string Boo { get; set; }
}

Использование:

class Program
{
    static void Main(string[] args)
    {
        string delimiter = ",";
        List<Foo> items = new List<Foo>() { new Foo { Boo = "ABC" }, new Foo { Boo = "DEF" },
            new Foo { Boo = "GHI" }, new Foo { Boo = "JKL" } };

        Console.WriteLine(items.Aggregate((i, j) => new Foo{Boo = (i.Boo + delimiter + j.Boo)}).Boo);
        Console.ReadKey();

    }
}

И вот мое лучшее :)

items.Select(i => i.Boo).Aggregate((i, j) => i + delimiter + j)
486
ответ дан Richnau 2 September 2017 в 18:41
поделиться
  • 1
    Ре @GolezTrol: почему рискуют. Моделирование тегов привязки намного легче, чем моделирование входных кнопок, и они представляют более последовательно с различными стилями, примененными через различные браузеры. Библиотеки как Начальная загрузка абстрагируют сложность моделирования далеко так, чтобы тег привязки и ввел, выглядят одинаково, но если you' ре, не пользуясь одной из этих библиотек, с помощью тегов привязки через сайт могло бы сделать вещи инструментом для очистки из рендеринга и моделирования перспективы. – ckarbass 18 March 2013 в 02:58

Это для массива строк:

string.Join(delimiter, array);

Это для List< string>:

string.Join(delimiter, list.ToArray());

И это для списка пользовательских объектов:

string.Join(delimiter, list.Select(i => i.Boo).ToArray());
113
ответ дан Alexander Prokofyev 2 September 2017 в 18:41
поделиться
List<string> strings = new List<string>() { "ABC", "DEF", "GHI" };
string s = strings.Aggregate((a, b) => a + ',' + b);
8
ответ дан Peter McG 2 September 2017 в 18:41
поделиться

В.NET 4.0 или более поздние версии:

String.Join(delimiter, list);

достаточно.

888
ответ дан Sedat Kapanoglu 2 September 2017 в 18:41
поделиться
  • 1
    вход, кнопка не имеет допустимого: толпитесь состояние в IE и it' s psuedoclass в других браузерах. Я получил бы удар на 0,01% пользователей, которые иначе не были бы в состоянии использовать мое веб-приложение с отключенным JavaScript, чем иметь для пользований библиотекой для получения: парение, работающее в IE (также, Pagespeed жалуется на проблемы производительности с этим). – James Huckabone 2 May 2013 в 17:39

Хороший вопрос. Я использовал

List<string> myStrings = new List<string>{ "ours", "mine", "yours"};
string joinedString = string.Join(", ", myStrings.ToArray());

, Это не LINQ, но это работает.

24
ответ дан Jacob Proffitt 2 September 2017 в 18:41
поделиться
  • 1
    Кроме того, быть осторожным для не помещения его в < activity> отметьте, поскольку я сделал в начале. – Elad Avron 27 September 2013 в 15:16
using System.Linq;

public class Person
{
  string FirstName { get; set; }
  string LastName { get; set; }
}

List<Person> persons = new List<Person>();

string listOfPersons = string.Join(",", persons.Select(p => p.FirstName));
53
ответ дан 22 November 2019 в 22:33
поделиться
Другие вопросы по тегам:

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