LINQ ile String Birleştirme

17 Tem

Bazen üyelerin emaillerini çekerek toplu mail göndermek durumunda kalabiliriz. Email listesini çekmek kolaydır. Fakat bir de bu emaillerin, aralarına noktalı virgül koyarak birleştirmesi işlemi vardır. Bu işlemi iki yolla yapabiliriz.

  • Email listesini SQL ortamında noktalı virgülle ayrılmış şekilde çekmek.
  • Email listesini dizi şeklinde SQL sorguyla alıp, birleştirme işlemini kod tarafında yapmak.

Biz ikinci yöntem üzerinde duracağız.

Elimizdeki email listesi şu şekilde olsun.


List<string> data = new List<string>
{
    "aaa@mail.com",
    "bbb@mail.com",
    "ccc@mail.com",
    "ddd@mail.com",
    "eee@mail.com"
};

Bu listeyi şimdi birkaç yöntemle birleştirmeyi deneyelim.

Birinci yol: LINQ Aggregate extension metodunun kullanımı.

var emails = data.Aggregate((s, e) => string.Concat(s, ";", e));

İkinci yol: String.Join extension metodunun kullanımı.

var emails = string.Join(";", data);

Her iki yönteminde çıktısı şu şeklide olacaktır:

"aaa@mail.com;bbb@mail.com;ccc@mail.com;ddd@mail.com;eee@mail.com"