請問有人幫我在LINQ寫這個值,LINQ的方式找到DataTable中
DataTable dt = new DataTable();
DataColumn dcValue = new DataColumn();
dcValue.ColumnName = "value";
DataColumn dvDisplay = new DataColumn();
dvDisplay.ColumnName = "display";
DataColumn dvIsDefualt = new DataColumn();
dvIsDefualt.ColumnName = "isDefalt";
dt.Columns.Add(dcValue,int);
dt.Columns.Add(dvDisplay,string);
dt.Columns.Add(dvIsDefualt,bool);
this.tipRacuna.DataSource = ds.Tables[0];
this.tipRacuna.ValueMember = "value";
this.tipRacuna.DisplayMember = "display";
this.tipRacuna.SelectedValue = findDefault(dt);//linq to find first value with default = true;
}
private int findDefault(DataTable dtt)
{
int i= 0;
foreach (DataRow dr in dtt.Rows)
{
if (bool.Parse(dr["isDefalt"].ToString()))
{
return int.Parse(dr["value"].ToString());
}
}
return i;
}
隨着我越來越多地參與C#和編程可言,我得到的LINQ查詢更多野趣。
在開始我總是跳過LINQ參數,因爲我知道TSQL不需要另一個查詢語言,但是當我看到有多少行代碼可以使用LINQ保存時,我開始學習它。
由於'isDefault'是一個bool,爲什麼得到的字符串值,解析它?你可以將它投射到布爾並完成。 'value'作爲int列也是一樣。解析不是一個超級便宜的操作,而是鑄造。 – Servy 2012-04-11 14:57:34
@Servy編譯器不會讓我繼續下去,如果我不解析它到布爾,我同意你,我應該嘗試一些東西,然後我才尋求幫助。但我的第一步是開始尋找可以使用LINQ作爲選項的方式。 – adopilot 2012-04-11 15:00:57
你找到了一個。 LINQ是這裏的一個選項。現在,你已經失去了大部分可能的學習機會,因爲其他人只是給你提供了完整的解決方案。如果你在這方面工作了一段時間,但仍然沒有提出任何建議,那麼詢問在這裏使用Linq是否可行或適當可能是有用的,而不是尋求解決方案。 – Servy 2012-04-11 15:03:32