今天發現乙個怪問題,同樣是.net3.5環境下的兩個專案,乙個裡支援arr.contains("1"),乙個就不支援,**完全相同也不行.有時在不支援專案裡加新檔案支援,但有時又不支援,發現在支援的專案裡contains的注釋是方法,但是查不出在哪定義的.
在網上查到一段**,雖然和這不太一樣,但是可以使陣列使用contains
陣列有contains方法,在.net framework 2.0 版中,array 類實現icollection介面,但必須如下書寫**:
1.string ss = new string ;
2.bool b = (ss as icollection).contains("1");
msdn中說明如下:
在.net framework 2.0 版中,array 類實現 system.collections.generic.ilist、system.collections.generic.icollection和 system.collections.generic.ienumerable泛型介面。由於實現是在執行時提供給陣列的,因而對於文件生成工具不可見。因此,泛型介面不會出現在 array 類的宣告語法中,也不會有關於只能通過將陣列強制轉換為泛型介面型別(顯式介面實現)才可訪問的介面成員的參考主題。將某一陣列強制轉換為這三種介面之一時需要注意的關鍵一點是,新增、插入或移除元素的成員會引發 notsupportedexception。
下例的第二種方法是上文裡講到的三種方法之一.
c#中怎麼判斷乙個陣列中是否存在某個陣列值
(1) 第一種方法:
int ia = ;
int id = array.indexof(ia,1); // 這裡的1就是你要查詢的值
if(id==-1)
// 不存在
else
// 存在
(2) 第二種方法:
string strarr = ;
bool exists = ((ilist)strarr).contains("a");
if(exists)
// 存在
else
// 不存在
注意: 用ilist需要using system.collections;
新手的編輯器體會
我覺得,乙個編輯器如果要專門用來進行寫 那麼從人體工學考慮 不考慮這個的話,notepad都能寫 不過基本上用notepad寫 的都屬於妖這個級別的,我們是人,不要和妖看齊 所以還是老實的玩玩編輯器,讓他用起來更爽 應該具備以下幾個功能 1.關鍵字功能 這個最重要,可以直接影響coder敲 的心情。...
新手學跨域
協議 http,https,ftp etc.網域名稱 foo.com,bar.com,img.foo.com 埠 80,8080,其中有乙個不一致即形成跨域。跨域是一種解決瀏覽器同源策略限制的手段,應根據場景選用合適的跨域方法,而不是在一種場景下隨便哪個都可以。開啟控制台,如果出現類似下面的錯誤資訊...
新手學跨域
協議 http,https,ftp etc.網域名稱 foo.com,bar.com,img.foo.com 埠 80,8080,其中有乙個不一致即形成跨域。跨域是一種解決瀏覽器同源策略限制的手段,應根據場景選用合適的跨域方法,而不是在一種場景下隨便哪個都可以。開啟控制台,如果出現類似下面的錯誤資訊...