Cela a sa racine dans une autre question que je posais, qui a résolu une partie de ce problème -Ecrivez ceci dans une requête linq?
Maintenant, je suis en train d'écrire toute la logique de la manière suivante -
var divisions = (
from DataRow row in results.Rows
let section = row["SECTION"].ToString()
orderby section ascending
select section).Distinct();
string result = String.Empty;
foreach (string div in divisions)
{
result = String.Concat(result, div, Environment.NewLine);
var query =
from DataRow row in results.Rows
let remarks = row["REMARKS"].ToString()
let exam = row["EXAM_NAME"].ToString()
let rollno = row["ROLL_NO"].ToString()
let section = row["SECTION"].ToString()
where (remarks == "Passes" || remarks == "Promoted") &&
exam == "TOTAL" && section == div
orderby rollno
select rollno;
result = String.Concat(result,string.Join(" ", query.ToArray()),
Environment.NewLine);
}
Fondamentalement, le datatable original a un tas de lignes avec diverses informations, y compris la division. Je veux créer une chaîne unique, pour laquelle chaque division apparaît sur une nouvelle ligne, et en dessous, les numéros de rôle pour cette division sont affichés de manière séparée par des virgules. Prochaine division sur la ligne suivante, et ainsi de suite. (ici Section et division sont des termes interopérables).
Existe-t-il une manière élégante d'écrire ceci avec une requête linq, au lieu d'avoir à parcourir les résultats de la première requête?
EDIT:
Data (pas mentionner les autres colonnes qui sont utilisées dans des conditions de filtre)
Roll_no Section.. other cols
001 A
002 A
001 B
003 A
004 B
006 B
C'est ce que la sortie ressemblera - (rouleau est non seulement unique au sein d'une division, mais cela ne devrait pas affecter la logique de quelque manière que)
A
001 002 003
B
001 004 006
Ce sera comme 'A \ r \ n001 002 003 \ r \ nB \ r \ n001 004 006' lorsque la chaîne est en format brut.
Remarque, le code ci-dessus fonctionne. Je cherche juste une meilleure approche.
Pouvez-vous mettre à jour votre question pour montrer un exemple de la sortie désirée? – Steven
J'ai mis à jour la question avec les données de l'échantillon et la sortie attendue –