Linq:在C#中选择一个新的List <guid> </guid>

时间:2013-02-05 22:58:33

标签: c# linq

使用 linq 我正在尝试获取列表[Guid] ,但我无法做到。

我试过了:

var myGuidList = from x in
                 mydatasource
                 where x.Field==value
                 select new Guid(){x.TheGuid};   <- Problem here

2 个答案:

答案 0 :(得分:6)

目前尚不清楚TheGuid属性的类型是什么,但如果它是一个字符串,则可以使用以下内容:

IEnumerable<Guid> myGuidList = 
    from x in mydatasource
    where x.Field == value
    select new Guid(x.TheGuid);

如果它是Guid,那么你可以直接选择它:

IEnumerable<Guid> myGuidList = 
    from x in mydatasource
    where x.Field == value
    select x.TheGuid;

如果您想获得List<Guid>,只需在结果中使用.ToList()扩展名方法:

List<Guid> guids = myGuidList.ToList();

答案 1 :(得分:5)

为什么你需要创建一个Guid的新实例(如果你已经有一个?

var myGuids = from x in
              mydatasource
              where x.Field == value
              select x.TheGuid;

(假设x.TheGuid当然是Guid

如果您想要List<Guid>

List<Guid> myGuidList = myGuids.ToList();

请注意,Guid没有conctructor占用Guid(无论如何都没有意义)或无参数构造函数,它也没有属性(只有一个字段Empty ),这就是你的代码无法编译的原因。