Select Tümcesi (Visual Basic)

Sorgunun sonucunu tanımlar.

Sözdizimi

Select [ var1 = ] fieldName1 [, [ var2 = ] fieldName2 [...] ]  

Parça

var1
isteğe bağlı. Sütun ifadesinin sonuçlarına başvurmak için kullanılabilecek bir diğer ad.

fieldName1
Gerekli. Sorgu sonucunda döndürülecek alanın adı.

Açıklamalar

Sorgudan döndürülecek sonuçları tanımlamak için yan tümcesini kullanabilirsiniz Select . Bu, sorgu tarafından oluşturulan yeni bir anonim türün üyelerini tanımlamanızı veya sorgu tarafından döndürülen adlandırılmış türün üyelerini hedeflemenizi sağlar. Yan Select tümcesi sorgu için gerekli değildir. Herhangi Select bir yan tümce belirtilmezse, sorgu geçerli kapsam için tanımlanan aralık değişkenlerinin tüm üyelerini temel alan bir tür döndürür. Daha fazla bilgi için bkz . Anonim Türler. Sorgu adlandırılmış bir tür oluşturduğunda, oluşturulan tür olan T türün IEnumerable<T> sonucunu döndürür.

yan tümcesi Select geçerli kapsamdaki tüm değişkenlere başvurabilir. Bu, yan tümcesinde From (veya From yan tümcelerinde) tanımlanan aralık değişkenlerini içerir. Ayrıca, , Let, veya yan tümceleri tarafından Aggregatebir diğer adla oluşturulan yeni değişkenleri veya Group Join sorgu ifadesindeki önceki Select bir yan tümceden değişkenleri Group Byiçerir. Yan tümcesi Select statik değerler de içerebilir. Örneğin, aşağıdaki kod örneğinde yan tümcesinin Select sorgu sonucunu dört üyeli yeni bir anonim tür olarak tanımladığı bir sorgu ifadesi gösterilmektedir: ProductName, Price, Discountve DiscountedPrice. ProductName ve Price üye değerleri yan tümcesinde From tanımlanan ürün aralığı değişkeninden alınır. Üye DiscountedPrice değeri yan tümcesinde Let hesaplanır. Discount Üye statik bir değerdir.

' 10% discount 
Dim discount_10 = 0.1
Dim priceList =
  From product In products
  Let DiscountedPrice = product.UnitPrice * (1 - discount_10)
  Select product.ProductName, Price = product.UnitPrice,
  Discount = discount_10, DiscountedPrice

yan tümcesi Select , sonraki sorgu yan tümceleri için yeni bir aralık değişkenleri kümesi sunar ve önceki aralık değişkenleri artık kapsam içinde değildir. Sorgu ifadesindeki son Select yan tümcesi, sorgunun dönüş değerini belirler. Örneğin, aşağıdaki sorgu toplam değeri 500'ü aşan her müşteri siparişi için şirket adını ve sipariş kimliğini döndürür. birinci Select yan tümce yan tümcesi ve ikinci Select yan tümcesi Where için aralık değişkenlerini tanımlar. İkinci Select yan tümce, sorgu tarafından döndürülen değerleri yeni bir anonim tür olarak tanımlar.

Dim customerList = From cust In customers, ord In cust.Orders
                   Select Name = cust.CompanyName,
                          Total = ord.Total, ord.OrderID
                   Where Total > 500
                   Select Name, OrderID

Yan tümcesi Select döndürülecek tek bir öğe tanımlarsa, sorgu ifadesi bu tek öğenin türünde bir koleksiyon döndürür. Select Yan tümcesi döndürülecek birden çok öğeyi tanımlarsa, sorgu ifadesi seçilen öğelere göre yeni bir anonim tür koleksiyonu döndürür. Örneğin, aşağıdaki iki sorgu yan tümcesine Select göre iki farklı türde koleksiyonlar döndürür. İlk sorgu, dize olarak bir şirket adları koleksiyonu döndürür. İkinci sorgu, şirket adları ve adres bilgileriyle doldurulmuş bir nesne koleksiyonu Customer döndürür.

Dim customerNames = From cust In customers
                    Select cust.CompanyName

Dim customerInfo As IEnumerable(Of Customer) =
  From cust In customers
  Select New Customer With {.CompanyName = cust.CompanyName,
                             .Address = cust.Address,
                             .City = cust.City,
                             .Region = cust.Region,
                             .Country = cust.Country}

Örnek

Aşağıdaki sorgu ifadesi, koleksiyon için bir From aralık değişkeni cust bildirmek üzere bir yan tümcesi customers kullanır. Select yan tümcesi müşteri adı ve kimlik değerini seçer ve yeni aralık değişkeninin CompanyName ve CustomerID sütunlarını doldurur. deyimi döndürülen For Each her nesnenin üzerinde döngü oluşturur ve her kaydın CompanyName ve CustomerID sütunlarını görüntüler.

Sub SelectCustomerNameAndId(ByVal customers() As Customer)
    Dim nameIds = From cust In customers
                  Select cust.CompanyName, cust.CustomerID
    For Each nameId In nameIds
        Console.WriteLine(nameId.CompanyName & ": " & nameId.CustomerID)
    Next
End Sub

Ayrıca bkz.