任何人都可以解释为什么这总是会返回" false"? myList包含" .txt",扩展名为" .txt"。
Array.Exists(myList, element => element == Path.GetExtension(myName).ToLower())
我甚至尝试过这样的事情:
String.Compare(myList[10],".txt")
我仍然得到"假" (1)。
当我检查myList[10]
的值时,它包含" .txt"
修改
我可以稍微缩小问题的范围
myList来自xml:
myXml= new XDocument();
myXml= XDocument.Load(myXmlFilePath);
myList= myXml.Root.Elements("File")
.Select(element => element.Value)
.ToArray();
如果我更换
myXml= XDocument.Load(myXmlFilePath);
与
myXml= XDocument.Parse("<Files><File>.txt</File><File>.ppt</File></Files>");
比它运作良好
这是xml文件:
<?xml version="1.0" encoding="utf-8"?>
<Files>
<File>.txt </File>
<File>.ppt </File>
<File>.xls </File>
</Files>
答案 0 :(得分:0)
Array.Exists
确定指定的数组是否包含与指定谓词定义的条件匹配的元素
我认为你的谓词element => element == Path.GetExtension(myName).ToLower()
是假的
String.Compare
假设您的myList[10]
为char数组为there's no overload to pass actual array to this method。
我的猜测是你的前提是错误的,myName
不是文本文件的路径,而myList[10]
是char数组而不是字符串数组。