C# Linq将枚举与字节进行比较
我有以下LInq声明:C# Linq将枚举与字节进行比较,c#,linq,C#,Linq,我有以下LInq声明: public class TestClass<T> : Form where T: struct, IConvertible { private class MyObject { public byte Number {get; set;} public string Name {get; set;} } private IReadonlyDictionary<string, T>
public class TestClass<T> : Form where T: struct, IConvertible
{
private class MyObject
{
public byte Number {get; set;}
public string Name {get; set;}
}
private IReadonlyDictionary<string, T> myListA;
private List<MyObject> myListB;
public void Convert()
{
var query = (from a in myListA
join b in MyListB
on a.Value equals b.Number
select new
{
b.Name
}).ToList();
}
}
公共类TestClass:Form,其中T:struct,IConvertible
{
私有类MyObject
{
公共字节号{get;set;}
公共字符串名称{get;set;}
}
私人Iredonlydictionary myListA;
私人名单myListB;
公共void Convert()
{
var query=(来自myListA中的
在MyListB中加入b
a.值等于b.数
选择新的
{
b、 名字
}).ToList();
}
}
如何将
a.Value
与b.Number
进行比较?调用ToByte
a.Value.ToByte(Thread.CurrentThread.CurrentCulture) == b.Number
或尝试
Convert.ToByte(a.Value) == b.Number
a.Value
是字符串吗?您的词典未键入其值
属性。这是字典值?@ryanyuyu a。值的类型是T(它是一个枚举)。一个简短但完整的示例演示了这个问题,使这个问题更容易回答。使用(byte)
@Ivan MarkDebono明确地将枚举值转换为字节:但这并不限制它为枚举<例如,code>DateTime满足了这一点。