1

我想检查是否存在 guid 类型的变量。我用了

new Db().JobCreate.Any(a => a.GuidVariable1.Equals(GuidVariable2, StringComparison.OrdinalIgnoreCase));

但我收到错误我该Member 'object.Equals(object, object)' cannot be accessed with an instance reference; qualify it with a type name instead 如何解决这个问题?

4

2 回答 2

1

我假设您有另一个名为GuidVariable2. 除非涉及其他事情,否则我会执行以下操作:

new Db().JobCreate.Any(a => a.GuidVariable1 == GuidVariable2);

如果变量实际上是strings 我会执行以下操作:

new Db().JobCreate.Any(a => a.GuidVariable1.ToLower() == GuidVariable2.ToLower());

根据注释更新: Guid表示十六进制数字,因此字母数字的大小写无关紧要。当表示为 astring时,大小写可以是 Upper、Lower 或组合,但实际数字是相同的:

var guid1 = Guid.Parse("a0449976-604e-4bdf-826d-234c4564c3e0");
var guid2 = Guid.Parse("A0449976-604E-4BDF-826D-234C4564C3E0");
var guid3 = Guid.Parse("A0449976-604E-4bdf-826d-234c4564c3e0");
guid1 == guid2; //true
guid2 == guid3; //true
于 2013-06-14T21:56:43.800 回答
0

干得好:

new Db().JobCreate.Any(a => string.Equals(
    a.GuidVariable1, GuidVariable2, StringComparison.OrdinalIgnoreCase));

(这当然是假设您所谓的 GUID 实际上是字符串,如果您想比较 GUID,只需这样做:)

new Db().JobCreate.Any(a => a.GuidVariable1.Equals(GuidVariable2));
于 2013-06-14T22:01:52.380 回答