我正在尋找一種更有效的方法來構建多個數據庫列的分號分隔列表。我現在使用的代碼看起來像這樣(和它的作品):訪問多個數據庫列的更有效方法
//Process List of things
var things = DB.DbColumn_1.HasValue ? DB.DbColumn_1.Value.Equals(true) ? "thing 1;" : "" : "");
things += DB.DbColumn_2.HasValue ? DB.DbColumn_2.Value.Equals(true) ? "thing 2;" : "" : "");
things += DB.DbColumn_3.HasValue ? DB.DbColumn_3.Value.Equals(true) ? "thing 3;" : "" : "");
things += DB.DbColumn_4.HasValue ? DB.DbColumn_4.Value.Equals(true) ? "thing 4;" : "" : "");
// Remove final ';' from thing list if non-empty
things = things.Length > 0 ? things.Substring(0, things.Length-1) : things;
其實我有大約8列,過程 - 例如省去一些的那個。所以我有一大塊難看的代碼來構建一個簡單的字符串。雖然這似乎工作得很好,但對於我正在嘗試做的事情來說,它似乎有太多的代碼。另外,在這種情況下,我應該謹慎使用「.Equals()」嗎?
經過一番頭腦風暴之後,我想出了沒有比這更高效的任何東西,比如建立一個單獨的函數來創建字符串本身。所有的列都是唯一的可爲空的布爾值,並且所有的列都有唯一的字符串輸出。
還是我有效地訪問這些元素足夠有效而不用擔心它?
謝謝!
倒敘帽子裏的貓。事物1和事物2 ... –
您可以編寫一個查詢,在一次讀取中獲取所有值,然後使用linq-to-object中的結果來創建字符串。 – frenchie