我有一個表,如下LINQ的兩列不同和返回爲單場
Id username userid departmentname
1 abc 1234 test1
2 abc 3456 test1
3 abc 1234 test2
4 abc 3456 test2
5 def 8989 test1
我要申請不同的用戶名和用戶ID列在LINQ
返回兩列單場所需的輸出將在下文
abc-1234
abc-3456
def-8989
我曾嘗試以下
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> getUserDetails(string prefixText, int count)
{
List<string> usernames = new List<string>();
using (DBEntities context = new DBEntities())
{
var distinctUsers = context.counters.Select(m => new { m.UserName, m.UserID }).Distinct().ToList();
var abc = distinctUsers.Select(p => new { DisplayText = p.UserName + "-" + p.UserID }).ToList();
usernames = abc.Where(r => r.DisplayText.StartsWith(prefixText)).ToList();
}
return usernames;
}
但我已經結束了這個問題。 1)一旦我得到了所需的結果,我需要篩選以輸入字符串(prefixtext)開頭的列表。我已經在變量abc中獲得了所需的結果,並且能夠獲得以輸入字符串開頭的列表,但是我得到的錯誤是'不能隱式地將類型列表匿名轉換爲列表字符串。如何將列表匿名類型轉換爲列表字符串? 2)上述方法是否更好?或者有沒有比這更好的方法?
謝謝你'Ashique',我沒有在另一行代碼中使用group。
var distinctUsers = context.counters.Select(m => (m.UserName + "-" + m.UserID)).Distinct().ToList();
var abc = distinctUsers.AsParallel().Where(x => x.StartsWith(prefixText)).ToList();
默認情況下,上面已經實現了我所需要的順序。它在默認情況下訂購或我應該執行類似下面的命令:
var distinctUsers = context.counters.Select(m => (m.UserName + "-" + m.UserID)).Distinct().OrderBy(n=>n).ToList();
使用「group by」 – Bambuk