[C#] 如何洗亂 List
這問題很好玩,之前跟 The God of Excel -智揚學長 在旅行途中一直在想這問題..Orz..
剛好這幾天有遇到這樣的需求,因為老闆希望撈出來的商品,不要順序都一樣,是否可以增加變化感..
又再度引發公司熱烈討論,這問題真是令人著迷?!
無論是效率,或是方法真的都很好玩..
下面是我提供的方法..我在List 中先依序放入 1~50
之後再丟入ShuffleList中將它洗亂…
依序放入 1~ 50 :
標籤: C#
[C#] 找尋string array 中是否有某一string
問題很簡單,有很笨的做法就是跑foreach 去查,但是已經到了21世紀,可以用LINQ語法來辦到
string[] pool = "AB,B,C,D".Split(',');
// true
MessageBox.Show((pool.Any(s => "B".Contains(s)).ToString()));
//true
MessageBox.Show((pool.Any(s => "AB".Contains(s)).ToString()));
//false
MessageBox.Show((pool.Any(s => "A".Contains(s)).ToString()));
假設 這 string array 為 AB,A,C,D
之後判斷是只要這樣寫就可以了
if (StringArray.Any(s => TargetString.Contains(s)))
標籤: C#
[Windows8] 開始不見了,外掛來解決
Windwos 8 的新版 UI ,是一個新的思維,很適合平板,但是對於這十幾年來的習慣.
一時之間難以習慣..這時候外掛出現了..
下載位址 : http://www.startbutton8.com/zh-tw/
如果還不習慣的話,快去下載吧…
[說好今夜不談程式] Chrome的Flash Player 為啥沒有聲音
這幾天重新安裝電腦,結果Chrome 播放 Youtube 卻沒有聲音..(悶~
網路上試過很多方法,還有移除音效卡的= = ..後來我找到這方法.
1. 首先打開你的Chrome 在網址 輸入 chrome://plugins/
[C#] 找尋字串中是否包含某字詞..
假設字串是 "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#
[C#] 使用 Fasterflect 進行快速反射
之前一篇文章 [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