Je me suis retrouvé dans une situation où je dois comparer deux listes différentes et je me demande quelle est la meilleure méthode pour cela? Je pensais que quelque chose comme ça marcherait mais ça ne fonctionne pas et je ne comprends pas pourquoi. La requête Linq renvoie des enregistrements qu'elle ne devrait pas. C'est la première fois que j'essaie de trouver quelque chose comme ça, donc c'est sans doute en désordre.C# Comparaison de deux listes personnalisées
private static List<ColumnDefinition> FindTableStructureUpdates(List<ColumnDefinition> colDefs, List<ColumnDefinition> tblCols)
{
List<ColumnDefinition> ColsToUpdate = new List<ColumnDefinition>();
for (int i = 0; i < colDefs.Count; ++i)
{
string colDefName = colDefs[i].ColName;
string colDefDataType = colDefs[i].ColType;
string colDefAttribute = colDefs[i].ColAttributes;
var query = from tbl in tblCols
where tbl.ColName != colDefName && tbl.ColType != colDefDataType && tbl.ColAttributes != colDefAttribute
select new { colDefName, colDefDataType, colDefAttribute };
if (query.Count() > 0)
{
foreach (var item in query)
{
ColsToUpdate.Add(new ColumnDefinition(item.colDefName, item.colDefDataType, item.colDefAttribute));
}
}
}
return ColsToUpdate;
Toutes les suggestions seraient grandes.
Merci.
Implémentation corrigible?
#region IEquatable<ColumnDefinition> Members
public bool Equals(ColumnDefinition other)
{
if (this.ColName.Equals(other.ColName) && this.ColType.Equals(other.ColType) && this.ColAttributes.Equals(other.ColAttributes))
return true;
return false;
}
Qu'est-ce que vous essayez d'atteindre exactement? – Manu
J'ai une base de données SQLite back end et j'essaye d'écrire une méthode pour comparer ce que la structure de table actuelle est à ce que j'ai codé dans une autre méthode si je fais une mise à jour de la table physique. Je ne pouvais pas penser à un moyen plus facile de le faire. – Nathan
Seulement une liste de "mise à jour"? Aucune liste pour "ajouté" et "supprimé"? Cela signifie-t-il que nous pouvons supposer que les deux listes contiennent toujours le même nombre d'éléments? –