我正在寻找一种方法来将我的 Linq 查询的结果转换为 string[] 或 List 而无需通常的循环方法。如果您想知道“示例很好,但您真正想要做什么?” 我正在尝试做示例显示的内容;我有一个对象集合,我想要一个字符串数组或对象列表中包含的唯一 ID 列表。
我认为代码示例说明了一切。这是一个可以运行的完整程序。
using System.Collections.Generic;
using System.Linq;
class Program
{
class DataModel
{
public DataModel(string id) { ID = id; }
public string ID;
}
static void Main(string[] args)
{
var dummyData = new DataModel[]
{
new DataModel("1"),
new DataModel("1"),
new DataModel("2"),
new DataModel("3"),
new DataModel("3")
};
// This works fine
var uniqueIDs =
from model in dummyData
group model by model.ID into grouped
select grouped.Key;
// This is the part that bugs me, it's so inelegant...
List<string> idStringList = new List<string>();
foreach (var id in uniqueIDs)
idStringList.Add(id);
}
}