Comment Filtrer les lignes nulles de DataTable avec linq?
J'ai un Datable que j'ai construit à partir de données excel, mais parfois, excel renvoie des lignes dans lesquelles tous les champs sont nuls.
J'aimerais filtre à celles-ci de façon générique, sans égard pour les noms de colonne.
Je pense que Linq serait faire bien, mais avoir un peu de mal à obtenir ce que cela arrive.
Jusqu'à présent c'est ce que j'ai:
var nonemptyrows = from r in table.AsEnumerable()
from f in r.ItemArray
where f != null
select r;
Mais ce n'est pas tout à fait là. Quelqu'un voit ce que je suis absent ou si je suis sur la mauvaise voie?
Merci d'avance!
OriginalL'auteur user259286 | 2010-03-07
Vous devez vous connecter pour publier un commentaire.
Comme ceci:
Ou, à l'aide de la requête de compréhension de la syntaxe:
Edit: Veuillez noter que IEnumerable est de type String et je ne suis pas aller chercher les id uniques, car ils ne peuvent pas être null.
OriginalL'auteur SLaks
Un peu plus propre, en utilisant les colonnes de la table :
J'ai l'habitude de faire de la table.OfType<DataRow>() à la fois linquify la DataTable et à lancer les lignes de l'objet à la DataRow. Pas sûr que le comportement si l'une des lignes finit par être nulle, cependant.
Il ne peut pas être null ligne dans une DataTable. Et vous n'avez pas besoin
OfType<DataRow>()
, comme les éléments d'un DataTable sont toujours des datarow, de sorte que vous pouvez simplementCast<DataRow>()
(qui est la même, mais n'a pas de filtre sur le type)OriginalL'auteur Thomas Levesque
Merci pour votre réponse! juste après que j'ai posté, cette idée ci-dessous m'a frappé et il a travaillé pour moi:
OriginalL'auteur user259286