Share via


Elemtulajdonságok részhalmazainak visszaadása egy lekérdezésben (C# programozási útmutató)

Használjon névtelen típust egy lekérdezési kifejezésben, ha mindkét feltétel teljesül:

  • Csak az egyes forráselemek tulajdonságainak egy részét szeretné visszaadni.

  • A lekérdezés eredményeit nem kell a lekérdezés végrehajtásának metódusán kívül tárolnia.

Ha csak egy tulajdonságot vagy mezőt szeretne visszaadni az egyes forráselemekből, akkor egyszerűen használhatja a pont operátort a select záradékban. Ha például csak az ID egyes studentelemeket szeretné visszaadni, írja be a záradékot az select alábbiak szerint:

select student.ID;  

Példa

Az alábbi példa bemutatja, hogyan lehet névtelen típust használni az egyes forráselemek tulajdonságainak csak egy részhalmazának visszaadásához, amely megfelel a megadott feltételnek.

private static void QueryByScore()
{
    // Create the query. var is required because
    // the query produces a sequence of anonymous types.
    var queryHighScores =
        from student in students
        where student.ExamScores[0] > 95
        select new { student.FirstName, student.LastName };

    // Execute the query.
    foreach (var obj in queryHighScores)
    {
        // The anonymous type's properties were not named. Therefore
        // they have the same names as the Student properties.
        Console.WriteLine(obj.FirstName + ", " + obj.LastName);
    }
}
/* Output:
Adams, Terry
Fakhouri, Fadi
Garcia, Cesar
Omelchenko, Svetlana
Zabokritski, Eugene
*/

Vegye figyelembe, hogy a névtelen típus a forráselem nevét használja a tulajdonságaihoz, ha nincsenek megadva nevek. Ha új neveket szeretne adni a névtelen típusú tulajdonságoknak, írja be a select következő utasítást:

select new { First = student.FirstName, Last = student.LastName };  

Ha ezt az előző példában próbálja ki, az utasításnak Console.WriteLine a következőt is módosítania kell:

Console.WriteLine(student.First + " " + student.Last);  

A kód összeállítása

A kód futtatásához másolja és illessze be az osztályt egy C#-konzolalkalmazásba a using System.Linq irányelvével.

Lásd még