Как конвертировать guid? вести - PullRequest
14 голосов
/ 31 марта 2011

Как конвертировать обнуляемый guid в guid? Мое намерение состоит в том, чтобы преобразовать список обнуляемых Guid в список guid. как я могу это сделать?

Ответы [ 5 ]

25 голосов
/ 31 марта 2011

Используйте оператор ??:

public static class Extension
{
   public static Guid ToGuid(this Guid? source)
   {
       return source ?? Guid.Empty;
   }

   // more general implementation 
   public static T ValueOrDefault<T>(this Nullable<T> source) where T : struct
   {
       return source ?? default(T);
   }
}

Вы можете сделать это:

Guid? x = null;
var g1 = x.ToGuid(); // same as var g1 = x ?? Guid.Empty;
var g2 = x.ValueOrDefault(); // use more general approach

Если у вас есть список и вы хотите отфильтровать нули, вы можете написать:

var list = new Guid?[] {
  Guid.NewGuid(),
  null,
  Guid.NewGuid()
};

var result = list
             .Where(x => x.HasValue) // comment this line if you want the nulls in the result
             .Select(x => x.ValueOrDefault())
             .ToList();

Console.WriteLine(string.Join(", ", result));
9 голосов
/ 31 марта 2011

Используйте это:

List<Guid?> listOfNullableGuids = ...
List<Guid> result = listOfNullableGuids.Select(g => g ?? Guid.Empty).ToList();

Это самый простой способ. Нет необходимости в методе расширения для чего-то такого простого ...

9 голосов
/ 31 марта 2011

Nullable<T>.value свойство?

1 голос
/ 28 ноября 2018
new Guid(yourGUID.ToString())

Также возможное решение ..

1 голос
/ 31 марта 2011

type? - это сокращение от Nullable<type>.См. документацию для Nullable .

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...