Filtre d'une liste à une autre liste C#
J'ai le business objects suivants:
public class ItemCategoryBO
{
public string ItemCategory { get; set; }
public string Title { get; set; }
}
public class ItemBO
{
public int ItemId { get; set; }
public string Title { get; set; }
public string ItemCategory { get; set; }
}
List<ItemCategoryBO> categoryList = new List<ItemCategoryBO>();
ItemCategoryBO itemCategory = new ItemCategoryBO();
itemCategory.ItemCategoryCd = "CARS";
itemCategory.Title = "Cars";
ItemCategoryBO itemCategory2 = new ItemCategoryBO();
itemCategory.ItemCategoryCd = "PLANES";
itemCategory.Title = "Planes";
categoryList.Add(itemCategory);
categoryList.Add(itemCategory2);
List<ItemBO> itemList = new List<ItemBO>();
ItemBO item1 = new ItemBO();
item1.ItemId = 1;
item1.Title = "1st item";
item1.ItemCategoryCd = "OTHER";
ItemBO item2 = new ItemBO();
item2.ItemId = 2;
item2.Title = "2nd Item";
item2.ItemCategoryCd = "CARS";
ItemBO item3 = new ItemBO();
item3.ItemId = 3;
item3.Title = "3rd Item";
item3.ItemCategoryCd = "PLANES";
itemList.Add(item1);
itemList.Add(item2);
itemList.Add(item3);
Si j'ai une liste de quelques catégories, comment pourrais-je trouver une liste des éléments qui contiennent une catégorie dans la liste des catégories? (Dans mon exemple, je veux retourner les articles 2 et 3)
Quels sont vos listes? Et pour être sûr, que signifie "filtrer par" signifie ici?
J'ai vraiment ne comprends pas les votes contre ici. Il n'est pas très difficile de comprendre ce que l'OP est de demander. Et si vous avez vraiment la chose qu'il est assez mauvais pour justifier une baisse de vote, laisser les OP des commentaires pour expliquer pourquoi vous vers le bas voté.
ne comprends vraiment pas? après avoir commenté
Désolé pour le manque de détail, j'ai mis à jour ma question 🙂 Merci.
J'ai vraiment ne comprends pas les votes contre ici. Il n'est pas très difficile de comprendre ce que l'OP est de demander. Et si vous avez vraiment la chose qu'il est assez mauvais pour justifier une baisse de vote, laisser les OP des commentaires pour expliquer pourquoi vous vers le bas voté.
ne comprends vraiment pas? après avoir commenté
It isn't very hard to figure out what the OP is asking for
?Désolé pour le manque de détail, j'ai mis à jour ma question 🙂 Merci.
OriginalL'auteur stillsmallvoice | 2012-05-24
Vous devez vous connecter pour publier un commentaire.
Si vous avez une situation comme:
et vous souhaitez obtenir tous les éléments qui ont une catégorie qui est dans votre liste de catégories, vous pouvez utiliser ceci:
Le Tout opérateur énumère la source de la séquence et retourne true si un élément satisfait le test donné par le prédicat. Dans ce cas, elle renvoie true si la liste de catégories contient un ItemCategoryBO où son ItemCategory chaîne est le même que l'élément ItemCategory chaîne.
Plus d'informations à ce sujet sur MSDN
La manière la plus simple de l'expliquer, Merci!!!! 🙂
A fonctionné pour moi aussi
Le potentiel de la révision de ce code:
List<ItemBO> result = items.Where(item => categories.Any(category => category.ItemCategory.equals(item.ItemCategory))).ToList();
tel Que rédigé actuellement, vous obtiendrez une erreur qu'elle retourne un IEnumerable au lieu d'une Liste<T>OriginalL'auteur Diana Ionita
Essayez ceci:
Mis à jour pour répondre à l'OP de la mise à jour question:
Si j'ai une liste de quelques catégories, comment pourrais-je trouver une liste des éléments qui contiennent une catégorie dans la liste des catégories? (Dans mon exemple, je veux retourner les articles 2 et 3)
Je pense que vous avez réellement doit de le faire en deux étapes. Tout d'abord, obtenir votre liste distincte des éléments. Puis, à partir de vos articles, obtenez la liste de vos catégories. Donc:
Un downvote? Nice, L. B.
je vais annuler mon downvote ASAP je comprends ce que votre réponse réponses
OriginalL'auteur Charlie Kilian
Essayez d'utiliser certains linq
OriginalL'auteur Micah Armantrout
Voici quelque chose que j'ai fait dans Linqpad
Ce retourne:
OriginalL'auteur dplante