J'essaie d'afficher plusieurs données, mais je ne parviens pas à sélectionner la colonne souhaitée. Mon code produira toutes les valeurs de données de colonne. J'ai 9 colonnes dans la table de données (base zéro), et je veux juste obtenir les données de la colonne 3 à la colonne 9. Reconnaissant pour tout type de perspicacité!

foreach (DataColumn column in dt.Columns)
    {
        int i = dt.Columns.IndexOf(column);
        int colCount = dt.Columns.Count;

        for (i = 3; i < colCount; i++)
            {
                html.Append("<div class='col col-" + column.Ordinal + "' data-label='" + column.ColumnName + "'>");
                html.Append(row[column.ColumnName]);
                html.Append("</div>");
            }
    }
0
QiangHao 31 mai 2020 à 11:20

3 réponses

Meilleure réponse

Cette réponse explique comment faire ce que vous voulez avec les méthodes d'extension Linq.

foreach (DataColumn column in dt.Columns.Cast<DataColumn>().Skip(3))
{
    html.Append("<div class='col col-" + column.Ordinal + "' data-label='" + column.ColumnName + "'>");
    html.Append(row[column.ColumnName]);
    html.Append("</div>");
}
0
anilcemsimsek 31 mai 2020 à 08:49

Le problème semble être que vous avez deux boucles. Le code ci-dessous n'atteindrait-il pas ce que vous voulez?

int colCount = dt.Columns.Count
for (i = 3; i < colCount; i++)
        {
            DataColumn column = dt.Columns[i];

            html.Append("<div class='col col-" + column.Ordinal + "' data-label='" + column.ColumnName + "'>");
            html.Append(row[column.ColumnName]);
            html.Append("</div>");
        }
0
LeiMagnus 31 mai 2020 à 08:29

Vérifiez l'extrait

        for (int i = 3; i < dt.Columns.Count; i++)
        {
            var column = dt.Columns[i];
            // more code
        }

En utilisant LINQ, vous pouvez obtenir la même chose

        //This requires namespace using System.Linq;
        foreach (var column in dt.Columns.OfType<DataColumn>().Skip(3))
        {
            // more code
        }
0
neelesh bodgal 31 mai 2020 à 08:39