LINQ Объединять консультацию в единственной линии

Я имею консультацию LINQ по отношению к, которая приложила стоимость таблицы в единственном поле показывать в DataGridView

Dim Consulta = (From ConsultaConceptos In ds.Tables("Concepto")
                     Select New With { _
                               .Concepto = "Cantidad: " & ConsultaConceptos.Field(Of String)("cantidad") & " ValorUnitario: " & ConsultaConceptos.Field(Of String)("valorUnitario") & " importe:  " & ConsultaConceptos.Field(Of String)("importe") & " Descripción: " & ConsultaConceptos.Field(Of String)("descripcion")
                           })
DataGridView1.DataSource = Consulta.ToList

Случай - что в таблице Concepto может быть более одной линии, в отличие от тех большего количества подмостков, у которых всегда будет только 1.

Пример:

____________Concepto_______________
dato             dato             dato      dato  fila1
__________________________________
dato             dato             dato      dato  fila2
__________________________________
dato             dato             dato      dato  fila3

То, что я хочу сделать, так это следующее:

Показывать линии 1,2 и 3 в одной

____________Concepto_______________
dato dato dato dato dato dato dato dato dato dato dato dato  fila 1

Заранее я знаю, что это возможное, потому что уже он сделан в существующей системе.

3
задан 29.03.2016, 01:03
1 ответ

Взятый из ответа, который он показывает @DiegoCantГє с сайта MSDN. У этой publicaciГіn есть она intenciГіn содержания ответа сайта MSDN tambiГ©n в этом месте. Если Хосе Р. У MCP есть пользователь в SOes, благосклонность комментировать ему, что напечатал Ваш ответ, чтобы удалять эту publicaciГіn. Требуется настоятельно не голосовать в благосклонность ни в против из этого ответа. Посетите первоначальный ответ в https://social.msdn.microsoft.com/Forums/sqlserver/es-ES/adcb85c1-d41a-4ac3-9155-addbfaaf8aeb/? forum=vbes& prof=required


Ok. Операторы существуют в VB.net? PodrГ, - чтобы добавлять его, оператор implГ - упомянул conversiГіn String в класс Я восхожу. Я верю в то, что это eliminarГ - в использование () =>, что называется expresiГіn lambda.

, Но лучше давайте не осложним это. Давайте делать длинный маршрут.

public class Dato
{
    //Declaramos una propiedad tipo string para contener el valor.
    public string Valor { get; set; }
    public override string ToString() { return Valor; }
}


//Luego hacemos lo que hacíamos pero coleccionamos objetos tipo Dato, no tipo String como antes.
var filas = from cc in ds.Tables["Concepto"].Rows
            select new Dato() { Valor = String.Format("Cantidad:  {0} ValorUnitario:  {1} Importe:  {2} Descripción:  {3}",
            cc["cantidad"], cc["valorUnitario"], cc["importe"], cc["descripcion"]) };

var listaFilas = filas.ToList();
if (listaFilas.Count > 0)
{
    string r = String.Empty;
    foreach Dato d in listaFilas
  {
      r += " " + d.Valor;
  }
  r = r.Trim();
  listaFilas.Clear();
    Dato d = new Dato()
    {
        Valor = r
    };
    listaFilas.Add(d);
}
DataGridView1.DataSource = listaFilas;

ВїMejor?

1
ответ дан 24.11.2019, 14:41