c# / linq / problemiki

Nadawanie aliasów w metodzie Select Linq

Przyszedł taki czas, że musiałem zasilić GridView za pomocą danych pobranych za pomocą LINQ:
ohdevs.Select(x => new
{
  x.OhDev1,
  x.OhDev2,
  x.OhDev3
})

Niestety rezultat był taki, że w nagłówkach kolumn pojawiły się nazwy OhDev1, OhDev2, OhDev3.
Co zrobić, aby nazwy były ładne? Ano wystarczy wstawić aliasy dla tych kolumn i wszystko zaczyna wyglądać ładnie.
ohdevs.Select(x => new
{
  ohdev = x.OhDev1,
  OHDEV = x.OhDev2,
  OH_dev = x.OhDev3
})

Niestety problem zaczyna się pojawiać kiedy trzeba zrobić nazwę kolumny zawierającą spację. Niestety nie można nadać takiego aliasa, ale można nadać alias z underscorem. W tym miejscu, po zamianie Listy na Dataset … wiem, wiem, wygląda to źle, ale to jest stan zastany, a klient chce na wczoraj … zmieniam nazwy kolumn:
foreach (DataColumn column in data.Tables[0].Columns)
{
  column.ColumnName = column.ColumnName.Replace("_", " ");
}

i wszystko zaczyna grać.

Leave a Reply

Your email address will not be published. Required fields are marked *