如何将System.Guid转换为C#中的字符串

时间:2013-12-26 13:35:25

标签: c#

我在类中有以下字段定义:

   public Nullable<System.Guid> GlobalId { get; set; }

我有另外一个课程如下:

   public string GlobalId { get; set; }

我想将类型为System.Guid的字段的值放入字符串中。

我试着这样做:

        var questionIds = _questionsRepository.GetAll()
            .Where(m => m.Problem != null &&
            m.Problem.SubTopic != null &&
            m.Problem.SubTopic.Topic != null &&
            m.Problem.SubTopic.Topic.SubjectId == 1)
            .Select(m => new QuestionHeader { GlobalId = (string) m.GlobalId })
            .ToList();
        return questionIds;

但它给了我一个错误说:

   Cannot convert type 'System.Guid?' to 'string'

有人可以告诉我怎么做吗?

7 个答案:

答案 0 :(得分:7)

您可以通过调用ToString()来获取GUID的字符串表示形式。

由于您的GUID可以为空,请在调用ToString()之前检查它是否为空:

string myString = guid.HasValue ? guid.Value.ToString() : "default string value";

答案 1 :(得分:3)

您不会转换为字符串。您使用ToString()方法。

像这样:

GlobalId = m.GlobalId.ToString()

答案 2 :(得分:2)

使用Convert.ToString代替(string)

GlobalId =  Convert.ToString(m.GlobalId)

答案 3 :(得分:2)

您可以使用.ToString()转换Guid:

Guid gid = Guid.NewGuid();

string myID = gid.ToString();

答案 4 :(得分:1)

GlobalId = m.GlobalId.ToString()

答案 5 :(得分:1)

只需使用ToString()方法

即可
Guid? g = null;    
string s = g.ToString();

如果null,它将返回String.Empty,否则您将获得Guid

的字符串表示形式

答案 6 :(得分:1)

string Id = Guid.NewGuid().ToString();