[C#] 找尋字串中是否包含某字詞..

2012-11-08

 

假設字串是 "HELLO,IamAString" 我是搜尋 是否包含 string 這字..

會因為大小寫關係..所以可能會搜尋不到…

所以,我能想到的寫法為這幾種…

 

1.  使用 IndexOf 判斷

var isContain = "HELLO,IamAString".IndexOf("string", StringComparison.OrdinalIgnoreCase) >= 0;


2. 先將字串轉成大寫/小寫 之後再用Contains 比對


var isContain = "HELLO,IamAString".ToUpper().Contains("STRING");



3. 使用Regular Expression


var isContain = Regex.Match("HELLO,IamAString", "string", RegexOptions.IgnoreCase).Success;



這時候我在想,哪一個效率比較好,所以做了一個很簡單的測試


我使用一個List 裡面擺物件(剛好正寫到一半的專案就進行測試)
其中的Name 我跑迴圈 放入一百萬筆資料 分別他們的Name 欄位是User1~User1000000 這時候我進行搜尋 ER5 這字串看看哪 個速度比較快


[C#] 使用 Fasterflect 進行快速反射

2012-11-07

 

之前一篇文章 [C#] 搜尋 T 裡面是否有某屬性中有某關鍵字

提到有關於 反射找出T 是否某一Property 帶有某值..

套一句 運轉手之戀這部電影說過的話..那時候我一值在想,如果再快一點會怎麼樣?!

之前的案例..

/// <summary>
/// 搜尋是否物件某屬性中是否帶有某關鍵字
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="lists"></param>
/// <param name="propertyName">屬性名</param>
/// <param name="propertyValue">是否包含某關鍵字</param>
/// <returns></returns>
public T[] SearchListPropertyValue<T>(List<T> lists, string propertyName, string propertyValue)
{
    List<T> re = new List<T>();
 
 
    return
        lists.Where(
            x => x.GetType().GetProperty(propertyName).GetValue(x, null).ToString().IndexOf(propertyValue, StringComparison.OrdinalIgnoreCase) >= 0).
            ToArray();
 
}


這時候我們呼叫 一個 擁有一百萬個物件的List


[C#][小技巧] double 轉字串問題,我不要 +E

2012-11-06

 

這需求有點詭異,但是依然就是發生了,

一個double 數值

double doubleValue = 900000000 * 9000000000 + 9000000000;
把他轉成 string 會長怎樣呢?!

答案是  8.100000009E+18


這不是我預期的答案,就人類世界來看我希望看到的數字是 8100000009000000000


這時候要動點小手腳( 嘆氣~~



[C#] 超級方便的 ExpandoObject 類別

 

這東西是 .NET Framework 4.0 的東西..

發現這個,大概就跟發現新大陸一樣的興奮,讓我再次讚嘆 Anders Hejlsberg 之神..

這邊有MSDN : http://msdn.microsoft.com/en-us/library/system.dynamic.expandoobject.aspx

簡單看一下他方便的地方..


[C#] Web Service 移除 xmlns

2012-11-05

 

最近因為一些業主要求,所以他需要我吐出去Web Service 的 XML 不能帶有  xmlns ..

也就是 原本是

2012-09-10_113819

但是他們家DEV 希望看的是

2012-09-10_113934

也真夠懶得…

不過付錢者大,看一下原本一開始的ASMX 檔案 是長這樣…


[C#] 透過DTD 驗證XML 完整性

2012-11-03

 

解別人問的問題,可不可以透過C# 來驗證某一份XML 是否符合DTD 的規範,

已經給他範例 http://msdn.microsoft.com/en-us/library/z2adhb2f.aspx

但是他說他要在一個function 內做完,因為生命週期的關係,最後非常懶得包Class 來做..

最後用這樣的解法…

順帶一提: (DTD)是一種可定義合法的XML文檔構建模塊。它使用一系列合法的元素來定義文檔的結構。

所以簡單的說DTD 可以用來驗證一個XML 是否是自己要的文法


當麻許的超技八 2014 | Donma Hsu Design.