-5

我在 text s 这行:

myData = myData.Replace(".jpg", ">JPG<");
myData = myData.Replace(".gif", ">GIF<");
myData = myData.Replace(".png", ">PNG<");
myData = myData.Replace(".tif", ">TIF<");

在我的 C# 程序上,我不会一个一个地在一个 cicle 上:

for (int l=0; w<listWithLines.Count;l++)
{
// MY LINE
// listWithLines[l]
}
4

4 回答 4

0

我不认为你能做到这一点,你可以使用 CodeProviders 等从外部源编译代码块,但我认为你不能像你想要的那样将它放入预定义的范围(范围在你的 for 循环中) ,除非您可以将其作为块加载并将其作为操作传递给方法(将执行循环)。

于 2012-11-07T15:55:24.493 回答
0

我不知道以这种方式从文本文件编译和运行代码行的简单方法。但是,如果您要为 myData 对象提供使用 XML 进行序列化和反序列化的方法,您可以从外部文件中读取行来执行类似的操作。

于 2012-11-07T15:59:23.753 回答
0

如果您的意图只是进行字符串替换(如示例行中所示),并且您能够修改文本列表,那么最好的方法是仅在列表中提供替换标记:

.jpg,>JPG<
.gif,>GIF<
.png,>PNG<
.tif,>TIF<

然后可以像这样修改您的 C# 代码:

for (int l=0; w<listWithLines.Count;l++)
{
    string[] strTokens = listWithLines[l].Split(',');
    // MY LINE
    myData = myData.Replace(strTokens[0], strTokens[1]);
}
于 2012-11-07T16:05:24.927 回答
0

你也许可以这样做,但它需要像 Reflection.Emit 这样的东西来做很多工作。很确定您还必须学习整个课程您可以使用 IronPython 或其他 DLR 实现之一来完成它,但也可以做很多工作将其转换为 xml

<Replaces>
<Replace from=".jpg" to=">JPG<" />
<Replace from=".gif" to=">GIF<" />
</Replaces>

然后做类似的事情

XmlDocument doc = new XmlDocument();
doc.Load("Replaces.xml")
foreach(XmlNode replaceNode in doc.DocumentElement.SelectNodes("Replaces/Replace"))
{
  myData = myData.Replace(replaceNode.Attributes["from"].Value, replaceNode.Attributes["to"].Value);
}
于 2012-11-07T16:35:35.100 回答