Bonjour,

Qu'elle est la meilleur façon pour faire de se code en LINQ ?

List<FilesTransaction> AllFilesTransactions = new List<FilesTransaction>();
AllFilesTransactions.AddRange(_Order.FilesTransactions);
if (_Order.Quote != null)
AllFilesTransactions.AddRange(_Order.Quote.FilesTransactions);
if (_Order.Purchase != null)
{
AllFilesTransactions.AddRange(_Order.Purchase.FilesTransactions);
if (_Order.Purchase.Tender != null)
AllFilesTransactions.AddRange(_Order.Purchase.Tender.FilesTransactions);
}


La requête doit retourné toutes les fichiers des transactions(Ceux de ma commande, de ma soumission, de mon achat et ceux de mon appel d'offre.).
Il faut noter que certain object peux être null.
Dans mon Exemple
_Order.FilesTransactions.Count = 1
_Order.Quote.FilesTransactions.Count = 1
_Order.Purchase = null

List<FilesTransaction> AllFilesTransactions2 = new List<FilesTransaction>();
AllFilesTransactions2 = _Order.FilesTransactions
.Union(_Order.Quote.FilesTransactions)
.Union(_Order.Purchase.FilesTransactions)
.Union(_Order.Purchase.Tender.FilesTransactions)
.ToList();

ce ci donne un erreur car les deux derniers union son NULL
Et j'aimerais savoir qu'elle est la différence entre "UNION" ET "CONCAT"

De plus est-ce possible d'écrire la requête en expression ?



var AllFilesTransactions =
from oft in _Order.FilesTransactions
union _Order.Quote.FilesTransactions
union _Order.Purchase.FilesTransactions
union _Order.Purchase.Tender.FilesTransactions
select oft.Name, oft.Folder;

Merci.

Francois.