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();代码>对我来说很好(我不得不做一些更改,因为你的代码没有编译)。我无法确认上一个代码示例的行为,因为它没有编译。但是,如果(不知何故?)最后一个代码示例对您不起作用(一旦您将其编译),它可能不起作用,因为该字符串实际上并不包含在另一个字符串中?