㈠ Linq查詢
這個是Linq中Linq to DataSet的部分,簡單講Linq就是C#內置的一種查詢語句,實際上你所使用的這個Linq to DataSet的語句是轉換成Enumerable.SelectMany().OrderBy()這種語句的,那麼相比於Linq to Object是針對IEnumerable<T>操作,Linq to DataSet主要是針對EnumerableRowCollection<DataRow>操作的的,類似的還有Linq to Xml是針對IEnumerable<XElement>操作的一樣
這句話的意思是以DataTable中OrderDate排序並返回結果行集,var只是C#3.0新添加的推斷機制,也就是你不寫EnumerableRowCollection<DataRow>,他在編譯的時候也會自動推斷var query是這個類型的。
你問其他的這樣是問有其他類似的語句么?那麼基本上linq的from where orderby groupby join let都可以用在這裡面,你可以從msdn找一些例子來
㈡ 如何在C#中使用LINQ語句
我來教你吧,其實這個是比較難說的
直接做個簡單的demo給你看看
不連資料庫的吧
你打開一個控制台程序
在裡面寫一個短小小的東東玩玩
在void main 函數裡面寫
var f=new int{1,2,3,4,5,6};
for(var i=0;i<f.length;i++)
console.writeline(f[i]);
console.readline();
這是一個輸出數組的函數,具體的語法你要看看書囖~主要是定義空間的東西
㈢ 如何還原 c#linq 反編譯
1.框架搭建
1.1 將struts2中的jar文件導入到項目中
commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,freemarker-2.3.15.jar,ognl-2.7.3.jar
struts2-core-2.1.8.1.jar,xwork-core-2.1.6.jar
1.2 將struts.xml文件拷貝到項目的src目錄下
1.3 修改web.xml文件
添加:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2.action中方法的調用方式
2.1 自動方法調用(只能調用execute)
2.2 指定方法調用(通過設置action標簽中的method屬性)
2.3 動態方法調用(在調用時,在action後加!方法名稱,如:login!deletUser)
注意:<constant name="struts.enable.DynamicMethodInvocation" value="true" />
2.4 通配符調用
3. action接收客戶端參數的方式
3.1 直接在action中定義參數變數,並生成set和get方法
3.2 定義接收參數的類
注意:都要為action的成員變數提供get和set方法
3.3 讓action實現ModelDriven介面,並實現裡面的getModel方法
4.獲取request,session,application的方式
4.1 用ActionContext獲取,實際上獲取到的都是Map對象
4.2 用ServletActionContext獲取,獲取到的是基於Servlet API的對象
4.3 讓action實現RequestAware,SessionAware,ApplicationAware介面,並實現裡面的方法
5.四種轉向
5.1 action轉發到頁面(默認)
5.2 action重定向到頁面 <result type="redirect">
5.3 action轉發到action <result type="chain">
<param name="actionName">login</param>
<param name="nameSpace">/login</param>
<param name="method">login</param>
</result>
5.4 action重定向到action <result type="redirectAction">login</result>
㈣ 如何使用Linq語句初始化ObservableCollection
第一種方法可以直接使用linq的查詢結果做為ObservableCollection構造函數的參數,
ObservableCollection<Assignment> Assignments = new ObservableCollection<Assignment>(
from a in App.LocalDataBase.Assignments
where a.CourseName == ApplicationTitle && a.StartDate == date
select a
);
第二種方式定義一個擴展方法因為 linq查詢的結果是返回一個集合類型IQueryable<T>,它實現了IEnumable<T>介面.所以這個擴展方法可以這樣寫
㈤ c#3.0提供的LINQ是如何在編譯器上得到支持的
linq是一門建立在.net基礎上的新語言,我記得叫什麼 聯合查詢語言。System.Linq就是為了解析這門語言出的編譯lambda表達式的類庫
linq語法基於lambda表達式,實現基於IQueryable等介面。是在原有IEnumable和ICollection上對集合對象的又一個功能擴展
㈥ 命名空間「System」中不存在類型或命名空間名稱「Linq」(是缺少程序集引用嗎) 怎麼辦
直接把 using System.Linq; 刪掉
這個名字空間是在.NET 4.0引進的,如果你把工程的屬性改成了.NET 3.5及以下版本,都會報出這個錯誤,而且我到現在還沒用過 System.Linq 下面的東西
㈦ linq 查詢一條數據怎麼轉換成string類型
編譯器在編譯時根據查詢自行判斷出userPwd是string類型。
如果查詢返回單獨一條結果,不會延遲執行,會立即查詢出結果。
㈧ CS0234: 命名空間「System」中不存在類型或命名空間名稱「Linq」(是缺少程序集引用嗎) CS0234: 命名空間
3.5以上的自動載入了,不需要手動在繼續載入!直接刪掉System.Linq就行了
㈨ 如何反編譯帶有LINQ表達式的代碼
如何反編譯帶有LINQ表達式的代碼
你有沒有搞錯啊,反匯編工具去編譯dll,反編譯是編譯的反過程,怎麼混到一起呢,貌似你想逆向一個dll吧,就算你有反編譯工具,反出來的代碼可讀性也很差,還是找找他的頭文件把,然後根據pe格式查查導出表,說不定能用一下,如果有lib文件,就更好辦了,用ida
貌似linq是針對c#的把,我也沒研究過,不知道說的對不對,c#是託管代碼,類似於虛擬機,所以你可以找找C#的反編譯工具試一試,
㈩ LINQ比一般的SQL語句效率更高嗎
Linq是一個范圍比較大的概念,它其中不單單只有linq to sql,還有相應的linq to xml等等。所以拿linq 與SQL語句相比,沒有可比性的。
但如果拿linq to sql相比的話,與SQL還是有很大的可比性的。一般情況下,你必須要明白你所指的效率是哪一方面?是資料庫執行效率?還是整體成品軟體運行效率?還是開發效率?
開發效率上linq to sql顯然要比SQL的效率要高很多,我們使用linq to sql 可以很容易實現編程,其中的代碼量也大大減少。所以如果從開發方面linq to sql的效率是毫無疑問要高於直接的SQL與資料庫連接。
如果從編方譯考慮,這個一般情況下,linq to sql是引入的新的技術,效率肯定是不如SQL的。好在這個編譯的部分不需要開發人員或是任何用戶的參與,所以即是效率差一點,對軟體來說沒有任何的影響。
最後一部分你可以比較感興趣,誰對資料庫的連接更快,執行效率更好?答案是linq to sql而不是直接的語句。一般我們使用直接的語句要求的是即是的執行,但事實上很多時間我們根本不需要那麼多,linq to sql其實說明了就是會自動生成與表結構同樣的一些對象。而這些對象在聯系資料庫時也是直接編譯好的語句,直接聯系時,兩者效率是相同的。
但是,如果我們對數據進行處理時,你就會發現,linq to sql的效率為什麼會更高了!因為他在讀取時不但會讀取當前表來填充生成的對象,同時還是延時讀其相關表,為你使用有關系的表提供了極大的方便。那麼你的相關表的讀取效率要快了!
但不管怎麼樣,他們都是在站立在了ado.net的基礎之上的,只不過有些自動生成了,根本不需要你再去做而已。唯一效果比較差的是,linq to sql讀出的數據在系統中被轉化了,同時它效率雖然變差一些,但是卻帶來了另一個好處,就是我們常說的SQL注入問題不再出現,你所輸入的任何東西都會變成了字元串了。
其實ADO.net的方案中我們使用了datareader方案的效高是比較高的,但是對於更新卻是極差的。而使用數據適配器的方案效率較底一些,更對於數據的更新是相當好的,而對於linq to sql其實它是使用數據緩存方案,也就是說linq to sql其實將資料庫中的數據緩存到了對象中,如果對象發生了更改,有必須過行返饋時,它是可以進行反饋的,而是這種反饋是可控制的,事務性的。從各方面給我們帶來了好處。
我們可以在更新了很多內容之後再去提交更改,那麼這種效率論從理解上還是效率上都優化你的原來的語句的!所以linq to sql並非在性能上的降低,而是一種提高。
嚴格說來,linq to sql並不是節省了代碼,相反它增加了很多代碼,便幸運的是,這些代碼都是由linq to sql框架自動生成的。若是換作人工,容易出錯的。但在使用時,由於框架完成了大部分的代碼,我們再使用linq to sql加上lambad表達式或查詢表達式,我們的代碼就變得極少且極簡潔了!而如果使用lambad表達式或查詢表達式時,它的效率顯然不如直接SQL來的直接。讀取效率會變得差一些的!
這是因為lambda表達式或查詢表達式是一個動態編譯的效果,而不是直接編譯好的,他要對語句進行編譯與優化以何證效率,但性能上因為多了一重處理,效率沒有SQL來的直接。但一般情況下,使用linq to sql配合查詢表達式或lambad表達式時,效率雖然稍差,但是帶來的卻是代碼的簡潔與易理解性,如果不配合查詢表達式與lambad表達式,linq to sql的優劣還不利用體現。所以關非linq to sql的效率差,而是我們使用了查詢表達式的動態編譯導致了效率較差。就linq to sql本身上來就,效率並不差的!