Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 在字典中过滤阿拉伯字母不起作用_C#_Entity Framework_Linq - Fatal编程技术网

C# 在字典中过滤阿拉伯字母不起作用

C# 在字典中过滤阿拉伯字母不起作用,c#,entity-framework,linq,C#,Entity Framework,Linq,试图在字典中筛选类似的阿拉伯字母键 例如: public static string MyCategoryTypeName= "الجيش"; public static Dictionary<int, string> StaticNames = new Dictionary<int, string>() { {الجيش" ,1"}, {الأمن العام" ,2"},

试图在字典中筛选类似的阿拉伯字母键

例如:

public static string MyCategoryTypeName= "الجيش";

  public static Dictionary<int, string> StaticNames = new Dictionary<int, string>()
            {
                {الجيش" ,1"},
                {الأمن العام" ,2"},
                {أمن الدولة",3 "},
                {الجمارك" ,4 "}
            };
 int selectedID = (from x in StaticNames where x.Key.Contains(MyCategoryTypeName) select x.Value).FirstOrDefault();
其中一个应该返回一个整数(1到4)。
它总是返回0(这是整数的默认值)。

而不是
x.value
使用
x.key
,它应该可以工作

  int selectedID = (from x in StaticNames where 
  x.Key.Contains("الجيش") select x.Value).FirstOrDefault();

您正在匹配的值不是密钥您的密钥包含要匹配的字符串。

使用
x.key
而不是
x.Value
,它应该可以工作

  int selectedID = (from x in StaticNames where 
  x.Key.Contains("الجيش") select x.Value).FirstOrDefault();
您正在匹配的值不是密钥。您的密钥包含要匹配的字符串。

此代码必须有效

static void Main(string[] args)
    {
        int selectedID = (from x in StaticNames where x.Key.Contains(MyCategoryTypeName) select x.Value).FirstOrDefault();
        Console.WriteLine(selectedID);
        Console.ReadKey();
    }
    public static string MyCategoryTypeName = "الجيش";
    public static Dictionary<string, int> StaticNames = new Dictionary<string, int>()
        {
            {"الجيش" ,1},
            {"الأمن العام" ,2},
            {"أمن الدولة",3 },
            {"الجمارك" ,4 }
        };
static void Main(字符串[]args)
{
int selectedID=(从StaticNames中的x开始,其中x.Key.Contains(MyCategoryTypeName)选择x.Value);
Console.WriteLine(选择EDID);
Console.ReadKey();
}
公共静态字符串MyCategoryTypeName=“الجيش”;
公共静态字典StaticNames=新字典()
{
{"الجيش" ,1},
{"الأمن العام" ,2},
{"أمن الدولة",3 },
{"الجمارك" ,4 }
};
在控制台中测试此代码,然后在项目中使用此代码

static void Main(string[] args)
    {
        int selectedID = (from x in StaticNames where x.Key.Contains(MyCategoryTypeName) select x.Value).FirstOrDefault();
        Console.WriteLine(selectedID);
        Console.ReadKey();
    }
    public static string MyCategoryTypeName = "الجيش";
    public static Dictionary<string, int> StaticNames = new Dictionary<string, int>()
        {
            {"الجيش" ,1},
            {"الأمن العام" ,2},
            {"أمن الدولة",3 },
            {"الجمارك" ,4 }
        };
static void Main(字符串[]args)
{
int selectedID=(从StaticNames中的x开始,其中x.Key.Contains(MyCategoryTypeName)选择x.Value);
Console.WriteLine(选择EDID);
Console.ReadKey();
}
公共静态字符串MyCategoryTypeName=“الجيش”;
公共静态字典StaticNames=新字典()
{
{"الجيش" ,1},
{"الأمن العام" ,2},
{"أمن الدولة",3 },
{"الجمارك" ,4 }
};

在控制台中测试此代码,然后在您的项目中使用

是的,我认为问题很简单,但考虑到阿拉伯语字符串有点混乱代码格式,这并不明显。@Kilazur是的,我也意识到了这一点。不,这不是我提到的答案,在粘贴字典后,它会将其反转,我将为code@markdibe编辑代码后,您仍然在比较整数,尝试理解键值对,您将得到答案。你只需要比较一下阿拉伯语strings@markdibe据了解,代码是乱七八糟的。您的键是第一个元素,即整数;你的值是第二个元素,字符串。因此,您确实应该测试值,而不是键,因为您正试图从值中检索键。是的,我认为问题很简单,但考虑到阿拉伯语字符串有点混乱代码格式,这并不明显。@Kilazur是的,我也意识到了这一点。不,这不是我提到的答案,在粘贴字典后,它会将它们反转,我会为code@markdibe编辑代码后,您仍然在比较整数,尝试理解键值对,您将得到答案。你只需要比较一下阿拉伯语strings@markdibe据了解,代码是乱七八糟的。您的键是第一个元素,即整数;你的值是第二个元素,字符串。因此,您确实应该测试值,而不是键,因为您正在尝试从值中检索键。
int-selectedID=(从StaticNames中的x开始,其中x.Value.ToString()包含(MyCategoryTypeName)选择x.Key)对我来说很好(我不得不做一些更改,因为你的代码没有编译)。我无法确认上一个代码示例的行为,因为它没有编译。但是,如果(不知何故)最后一个代码示例对您不起作用(一旦您将其编译),它可能不起作用,因为该字符串实际上并不包含在另一个字符串中。是否有幸测试my idea@markdibe?
int selectedID=(从StaticNames中的x开始,其中x.Value.ToString().Contains(MyCategoryTypeName)select x.Key)。FirstOrDefault();对我来说很好(我不得不做一些更改,因为你的代码没有编译)。我无法确认上一个代码示例的行为,因为它没有编译。但是,如果(不知何故?)最后一个代码示例对您不起作用(一旦您将其编译),它可能不起作用,因为该字符串实际上并不包含在另一个字符串中?