我想检查是否存在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
我该如何解决这个问题?
答案 0 :(得分:1)
我假设您有另一个名为GuidVariable2
的实例变量。
除非涉及其他内容,否则我只需执行以下操作:
new Db().JobCreate.Any(a => a.GuidVariable1 == GuidVariable2);
如果变量实际上是string
s,我会执行以下操作:
new Db().JobCreate.Any(a => a.GuidVariable1.ToLower() == GuidVariable2.ToLower());
根据评论更新:
Guid
表示十六进制数,因此alpha数字的大小写无关紧要。当表示为string
时,大小写可以是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
答案 1 :(得分:0)
你走了:
new Db().JobCreate.Any(a => string.Equals(
a.GuidVariable1, GuidVariable2, StringComparison.OrdinalIgnoreCase));
(这当然是假设您所谓的GUID实际上是字符串,如果您想要比较GUID,只需这样做:)
new Db().JobCreate.Any(a => a.GuidVariable1.Equals(GuidVariable2));