假設存在具體的數據我有2個數據表,DSALL和DSSome存儲的學生信息檢查是否在一個DataTable
DSALL(存儲所有學生信息)
SID(PK)
名稱
地址
電話
...
DSSome(僅存儲SID爲某些特定的學生)
SID(唯一)
現在我想一個C#函數,以檢查是否在所有DSSome在SID存在DSALL。如果DSALL中存在所有SID,則函數返回true,否則返回false。
的傳統方法是
protected bool checkSID(DataTable DSALL, DataTable DSSome){
for (int i=0; i<DSSome.Rows.Count; i++){
bool isFound = false;
string SID = DSSome.Rows[i]["SID"].ToString();
for (int j=0; j<DSALL.Rows.Count; j++){
string _SID = DSALL.Rows[j]["SID"].ToString();
if (SID == _SID) { isFound = true; break; }
}
if (!isFound) return false;
}
return true;
}
有沒有高效的方式任何其他簡單的方法來解決這個問題?
你可以使用[DataTable.Select(http://msdn.microsoft.com/en-us/library/det4aw50.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet -2)替換內部循環 - 'DataRow [] rows = DSALL.Select(「SID =」+ _SID); if(rows.Length> 0){isFound = true; }'。 LINQ讀取效率可能更高,但我不知道它是否會更高效。 – Tim