分享人:王炳鈞
1. 簡(jiǎn)單的驗(yàn)證
應(yīng)用場(chǎng)景:若需要在頁面解鎖某一段航班,點(diǎn)擊解鎖按鈕時(shí)客戶端js檢驗(yàn)當(dāng)前航班輸入數(shù)據(jù)是否合法衰伯,若合法則進(jìn)行數(shù)據(jù)庫操作铡羡,若不合法,則停止意鲸。
常用ajax
響應(yīng)服務(wù)器的方法烦周,在該button的onclick方法中校驗(yàn)是否合法,若返回true怎顾,則調(diào)用后臺(tái)處理函數(shù)读慎。若返回false,則不執(zhí)行后臺(tái)方法槐雾。
如果左邊return false 作為驗(yàn)證 右邊則不執(zhí)行夭委。
2. LINQ中TakeWhile&SkipWhile
在用TakeWhile,SkipWhile前,先看一看常用的Take和Skip:
public static IEnumerable<TSource> Take<TSource>(this IEnumerable<TSource> source, int count);
public static IEnumerable<TSource> Skip<TSource>(this IEnumerable<TSource> source, int count);
Take將枚舉出source中的前count個(gè)元素,返回給客戶端.
Skip 則恰好相反,將跳過source中的前count個(gè)元素,枚舉其余元素
TakeWhile 和 SkipWhile:
數(shù)據(jù)源
static List<Customer> customers = new List<Customer> {
new Customer { CustomerID=1,Name="woody1"},
new Customer { CustomerID=2,Name="woody2"},
new Customer { CustomerID=3,Name="woody3"},
new Customer { CustomerID=4,Name="woody1"}
};
在這個(gè)數(shù)據(jù)源的基礎(chǔ)上,進(jìn)行如下操作:
var cs1 = customers.TakeWhile(c => c.Name == "woody1");
var cs2 = customers.TakeWhile(c => c.Name == "woody2");
var cs3 = customers.SkipWhile(c => c.Name == "woody1");
var cs4 = customers.SkipWhile(c => c.Name == "woody2");
問題:cs1--cs4這四個(gè)IEnumerable<Customer>變量中都保存著些什么元素?
正確答案:
cs1 :woody1(CustomerID=1)
cs2 : 沒有任何元素
cs3 :woody2 , woody3 , woody1(CustomerID=4)
cs4 :woody1(CustomerID=1),woody2,woody3,woody1(CustomerID=4)
TakeWhile對(duì)數(shù)據(jù)源進(jìn)行枚舉,從第一個(gè)開始判斷,若返回true,則將該元素返回給客戶端,并且繼續(xù)向下進(jìn)行枚舉募强。但是株灸,一旦值返回false的話,枚舉就此打住钻注,忽略剩下的所有元素蚂且。
SkipWhile也對(duì)數(shù)據(jù)源進(jìn)行枚舉, 從第一個(gè)開始判斷, 若返回true,則跳過該元素,繼續(xù)進(jìn)行枚舉操作幅恋。但是,一旦值返回為false泵肄,則該元素以后的所有元素,都不會(huì)再進(jìn)行判斷捆交,而全部顯示淑翼。
應(yīng)用場(chǎng)景:業(yè)務(wù)部門根據(jù)備降航班來導(dǎo)出備降航班前后航班信息。查詢某天所有航班信息品追,若有備降航班玄括,則將起飛時(shí)間早于該航班的航班數(shù)據(jù)作為一個(gè)文件導(dǎo)出,來獲取多個(gè)表格。