2011-03-31 10 views
13

guidable guid को guid में कैसे परिवर्तित करें? मेरा इरादा शून्य सूची में ग़लत सूची की सूची को परिवर्तित करना है। मैं उसे कैसे कर सकता हूँ?guid कैसे परिवर्तित करें?

उत्तर

20

?? ऑपरेटर का प्रयोग करें आप आ सूची है और nulls को फ़िल्टर करने के लिए wan'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)); 
+1

मान्य उत्तरों के लिए है लेकिन मेरा इरादा शून्य सूची में ग़लत सूची की सूची को परिवर्तित करना है। मैं उसे कैसे कर सकता हूँ? –

5

Nullable<T>.value संपत्ति?

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); 
    } 
} 

आप ऐसा कर सकते हैं:

+0

बहुत धन्यवाद ryuslash, आपके उत्तर ने वास्तव में मेरी मदद की। – Mitch

+0

मैं सहमत हूं; प्रकार का विस्तार करने की कोई ज़रूरत नहीं है; यदि आप जानते हैं कि शून्य प्रकार में वास्तविक ग्रिड है, तो बस। वैल्यू प्रॉपर्टी का उपयोग करें। – HBlackorby

9

इस का उपयोग करें:

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

यह सबसे आसान तरीका है। कुछ आसान के लिए एक विस्तार विधि की आवश्यकता नहीं है ...

संबंधित मुद्दे