Utilisez l'objet de groupe de bouton LINQ
Dans la programmation orientée objet, il est très utile en fonction des attributs publics ou des objets de groupe de clés. Cet exemple discute de la façon d'utiliser LINQ (intégration linguistique) selon l'objet du groupe PersonID et d'obtenir une liste de voitures associée à tout le monde.
Supposons que nous ayons une classe appelée personne:
<code class="language-csharp">class Person
{
public int PersonID;
public string Car; // 将car改为Car,符合C#命名规范
}</code>
Copier après la connexion
Nous avons également une liste d'objets de personne:
<code class="language-csharp">List<Person> persons;</code>
Copier après la connexion
Cette liste peut contenir plusieurs instances avec le même PersonID. Par exemple:
<code class="language-csharp">persons = new List<Person>()
{
new Person { PersonID = 1, Car = "Ferrari" },
new Person { PersonID = 1, Car = "BMW" },
new Person { PersonID = 2, Car = "Audi" }
};</code>
Copier après la connexion
Notre objectif est de regrouper ces objets selon PersonID et d'obtenir une liste de toutes les voitures appartenant à tout le monde. Les résultats attendus sont présentés ci-dessous:
<code class="language-csharp">class Result
{
public int PersonID;
public List<string> Cars;
}</code>
Copier après la connexion
Après le regroupement, nous obtiendrons:
<code class="language-csharp">// 示例结果,实际结果由LINQ查询生成
var results = new List<Result>()
{
new Result { PersonID = 1, Cars = new List<string> { "Ferrari", "BMW" } },
new Result { PersonID = 2, Cars = new List<string> { "Audi" } }
};</code>
Copier après la connexion
Pour cette raison, nous pouvons utiliser la méthode groupby de Linq:
<code class="language-csharp">var results = from p in persons
group p.Car by p.PersonID into g
select new Result { PersonID = g.Key, Cars = g.ToList() };</code>
Copier après la connexion
Dans la clause Groupby, nous spécifions PersonID en tant que clé de groupe et prévoyons la propriété de la voiture. La séquence générée sera un ensemble de clés associées à leurs voitures respectives.
ou, vous pouvez utiliser le dictionnaire de recherche pour obtenir les mêmes résultats:
<code class="language-csharp">var carsByPersonId = persons.ToLookup(p => p.PersonID, p => p.Car);</code>
Copier après la connexion
Cela créera un dictionnaire, où la clé est PersonID, et la valeur est la liste des voitures de chacun. Pour rechercher une voiture spécifique, vous pouvez utiliser:
<code class="language-csharp">// 这将返回一个空序列,对于查找中不存在的personId
var carsForPerson = carsByPersonId[personId];</code>
Copier après la connexion
En utilisant ces technologies, vous pouvez utiliser C # et LINQ pour suivre efficacement les objets de liaison publique et récupérer la liste des données connexes de manière simple et efficace. L'exemple de code a été amélioré, ce qui est plus conforme aux spécifications de codage de C #.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!