Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq将枚举与字节进行比较_C#_Linq - Fatal编程技术网

C# 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>

我有以下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> 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满足了这一点。