将字符串变量转换为字符串文字
本文关键字:字符串 文字 变量 转换 | 更新日期: 2023-09-27 18:20:48
我正在开发一个与SharePoint 2010接口的应用程序,其中一个SP对象(如果您很好奇,请使用SPFolder.Subfolders[index]
)需要一个字符串来索引它返回的项。问题是我需要给它传递一个字符串变量,但它只接受文本。有没有一种方法可以将变量转换为文字?如果问题还不够清楚,请参阅下图:
SPFolder folder = rootFolder.SubFolders["Literal folder name"]; // This properly searches the collection (which has already been defined) and returns the folder with the name specified by the literal.
string newFolder = "Literal folder name"; // In this case I'm trying to pass this string as the index.
SPFolder folder = rootFolder.SubFolders[newFolder]; // This is where it throws a "Value does not fall within the expected range" exception when the string is referenced.
如果上下文有帮助,应用程序将获取一组文件夹名称,并在库中的特定级别创建它们,然后在新文件夹中循环以在其中构建复杂的文件夹结构。要做到这一点,我必须创建一个文件夹,获取它的url,然后基于该url创建其余的文件夹。获取新创建的文件夹是我遇到麻烦的地方,因为用我刚刚创建的字符串索引父文件夹会让它变得疯狂。
这些是相同的:
SPFolder folder = rootFolder.SubFolders["Literal folder name"];
string folderName = "Literal folder name";
SPFolder folder = rootFolder.SubFolders[folderName];
在您的示例中,字符串具有不同的值,这将导致不同的结果。
文档中的示例显示了通过整数索引进行访问,您可以在其中检查名称。不是最优雅的,但可以工作
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfoldercollection(v=office.14).aspx
您尝试过使用逐字逐句的字符串文字吗?
var testString = @"This is a verbatim string literal";
MSDN还很好地解释了字符串文字和逐字逐句字符串文字之间的区别。