有了這個代碼(有或沒有」 .ToList() 「):QueryAsync()從單個字符串列請求1..N個值時返回什麼?
public async Task<List<String>> SelectDistinctGroupNames()
{
var db = new SQLiteAsyncConnection(SQLitePath);
var groupNames = await db.QueryAsync<List<string>>("SELECT DISTINCT GroupName FROM SOs_Locations");
return groupNames.ToList();
}
...我得到的,」 無法隱式轉換類型 'System.Collections.Generic.List>' 到「系統.Collections.Generic.List」「
這工作:
public async Task<HashSet<String>> SelectDistinctGroupNames()
{
var db = new SQLiteAsyncConnection(SQLitePath);
var allLocations = await db.QueryAsync<SOs_Locations>("SELECT * FROM SOs_Locations ORDER BY GroupName");
HashSet<string> hashsetGroupNames = null;
foreach (var item in allLocations)
{
hashsetGroupNames.Add(item.GroupName);
}
return hashsetGroupNames;
}
...但似乎浪費(搶佔了所有的記錄,當所有我要的是從組名列不同的值)。
這在我看來,我們需要的是一個列表,甚至當更換一個HashSet的「*」與「不同的組名」 SQL查詢
那麼究竟什麼是返回時,從幾個單個列記錄被返回? IOW,應該在QueryAsync <>()的調用的尖括號內?
我認爲這會工作:
public async Task<List<String>> SelectDistinctGroupNames()
{
var db = new SQLiteAsyncConnection(SQLitePath);
List<string> allLocations = await db.QueryAsync<string>("SELECT DISTINCT GroupName FROM SOs_Locations ORDER BY GroupName");
return allLocations;
}
...但是,我得到的,「‘串’必須是爲了使用它的非抽象類型與公共參數構造函數如在通用類型或方法參數「T」「SQLite.SQLiteAsyncConnection.QueryAsync(字符串,params對象[])」「
我有一個‘串’上方與<SOs_Locations
對應>(不是」列表<SOs_Locations
> 「)在該方法的工作版本中。當我將其更改爲 「列表<string
>」,我得到 「無法隱式轉換類型 'System.Collections.Generic.List <System.Collections.Generic.List
' 到 'System.Collections.Generic.List <string
>'」