2018年10月10日.NET筆試面試題

請用LINQ技術輸出數(shù)組中所有大于100的偶數(shù)項

int[] MyNum = new int []{100,20,2,8,4,104,1,21,101,201,202}

解答

// 將制定的查詢表達式結果集賦值給newnum變量
var newnum = from n in num 
            where n % 2 == 0 && n > 100
            select n;

foreach (var m in newnum)
{
    console.WriteLine("小于100的偶數(shù)項:{0}", m)
}

分析

  • 本題解答中應用了LINQ査詢表達式。
  • 査詢表達式是使用聲明性査詢語法編寫的,它可以使用最少的代碼對數(shù)據(jù)源執(zhí)行復雜的篩選、排序和分組操作。
  • 使用相同的基本査詢表達式模式來査詢和轉換各種數(shù)據(jù)源的數(shù)據(jù),開發(fā)效率以及代碼重用性都會提高很多。從查詢表達式的語言上看,非常類似于SQL查詢句。
  • var是C#的特性,可以更方便地定義變量,在編譯時編譯器將變量自動定義為結果集對象實際的數(shù)據(jù)類型。
  • 實際上,LINQ的查詢表達式所返回的結果集是一個實現(xiàn)了IEnumerable<T>接口的對象,根據(jù)表達式的不同,其對象類型也不同,這些類型都位于System.Query命名空間。
  • 編程者很多時候并不需要知道結果集具體的類型,很顯然,用var來定義引用結果集的變量類型再合適不過,并且大大簡化了代碼。
  • 同樣,在遍歷輸出子項時,foreach語句中的下項類型也可以用var來定義,這樣,進一步增加了代碼的重用性。
  • 在查詢表達式中,有一個沒有定義的變量n,該變量用于代表num中符合條件的子項,如果編程者愿意,完全可以用其他自定義的合法標識符代替n。

ExecuteNonQuery方法和ExecuteScalar方法有何區(qū)別

  1. ExecuteNonQuery()執(zhí)行命令對象的SQL語句,返回一個int類型變量,如果SQL語句是對數(shù)據(jù)庫的記錄進行操作(如記錄的增加、刪除和更新),那么方法將返回操作所影響的記錄條數(shù)。
  2. ExecuteScalar()執(zhí)行命令對象的SQL語句,如果SQL語句是SELECT查詢,則僅僅返回查詢結果集中的第1行第1列,而忽略其他的行和列。該方法所返回的結果為object類型,在使用之前必須強制轉換為所需的類型。如果SQL語句不是SELECT查詢,則返回結果沒有任何作用。

描述DataSet的特點

解答

  1. 處理脫機數(shù)據(jù),在多層應用程序中很有用。
  2. 可以在任何時候査看DataSet中任意行的內容,允許修改查詢結果的方法。
  3. 處理分級數(shù)據(jù)。
  4. 緩存更改。
  5. XML的完整性DataSet對象和XML文檔幾乎是可互換的。

分析

  • DataSet是ADO.NET的核心概念,可以把DataSet當成服務器內存中的數(shù)據(jù)庫。
  • DataSet是不依賴于數(shù)據(jù)庫的獨立數(shù)據(jù)集合,所謂獨立,就是說即使斷開數(shù)據(jù)源連接,或者關閉數(shù)據(jù)庫后DataSet依然是可用的。
  • DataSet在內部是用XML來描述數(shù)據(jù)的,由于XML是與平臺、語言無關的數(shù)據(jù)描述語言,所以DataSet實際可以容納具有復雜關系的數(shù)據(jù)。*
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容