小编ray*_*ran的帖子

在C#中向xml文件添加元素

我有一个格式如下的XML文件:

<Snippets>
  <Snippet name="abc">
    <SnippetCode>
      testcode1
    </SnippetCode>
  </Snippet>

  <Snippet name="xyz">
    <SnippetCode>      
     testcode2
    </SnippetCode>
  </Snippet>

  ...

</Snippets>
Run Code Online (Sandbox Code Playgroud)

我可以使用XDocument成功加载元素,但是我在添加新元素时遇到了麻烦(有许多函数,我尝试过的大多数函数对我来说效果不好).怎么做?新元素将包含代码段名称标记和代码段代码标记.我以前的方法是打开文件,并使用字符串手动创建元素虽然有效,但这是一个非常糟糕的主意.

我尝试过的:

XDocument doc = XDocument.Load(spath);
XElement root = new XElement("Snippet");
root.Add(new XElement("name", "name goes here"));
root.Add(new XElement("SnippetCode", "SnippetCode"));
doc.Element("Snippets").Add(root);
doc.Save(spath);
Run Code Online (Sandbox Code Playgroud)

结果如下:

<Snippet>
    <name>name goes here</name>
    <SnippetCode>
    code goes here
    </SnippetCode>
</Snippet>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但名称标签生成不正确.它应该是

<Snippet name="abc"> 
Run Code Online (Sandbox Code Playgroud)

但我无法正确生成.

c# xml file

34
推荐指数
3
解决办法
10万
查看次数

n个字符或至少m个字符的正则表达式

这应该是一个非常简单的正则表达式问题,但我无法在任何地方找到任何答案.如何制作一个正则表达式,它只匹配2个字符或至少4个字符.这是我目前的做法(忽略正则表达式本身,除此之外):

[A-Za-z0_9_]{2}|[A-Za-z0_9_]{4,}
Run Code Online (Sandbox Code Playgroud)

但是,这种方法花费了两倍的时间(对于400行文件,我的速度大约慢了0.3秒),所以我想知道是否有更好的方法来做到这一点?

regex character

23
推荐指数
1
解决办法
4万
查看次数

C#WebClient第一次表现得很慢

我使用WebClient从网站下载一个字符串(只包含纯文本,没有别的),所以我使用DownloadString方法:

WebClient wc = new WebClient();
string str = wc.DownloadString("http://blah");
Run Code Online (Sandbox Code Playgroud)

它运行正常,但问题是它第一次下载字符串需要很长时间,比如5秒.之后它运作得很快.为什么会发生这种情况,如何解决这个问题呢?

.net c# performance webclient download

13
推荐指数
2
解决办法
5833
查看次数

C#检查字符串是否包含字符串数组中的任何匹配项

检查字符串是否包含C#中字符串数组中的任何匹配项的最快方法是什么?我可以使用循环来完成它,但我认为这太慢了.

c# arrays string contains

11
推荐指数
4
解决办法
4万
查看次数

如何删除MatchCollection中的重复匹配

在我的MatchCollection中,我获得相同的匹配.像这样:

string text = @"match match match";
Regex R = new Regex("match");
MatchCollection M = R.Matches(text);
Run Code Online (Sandbox Code Playgroud)

如何删除重复的匹配,是否是最快的方式?

假设此处的"重复"表示匹配包含完全相同的字符串.

c# regex duplicates match

11
推荐指数
1
解决办法
6852
查看次数

如何将.NET应用程序移植到mono

由于我不满意我的C#应用​​程序不能在Linux或Mac上工作,我安装了MonoDevelop,希望将我的应用程序移植到Mono以实现交叉平台化.

但是,我不知道如何使用MonoDevelop来完成这项任务.常见问题解答或文档中没有说明.

知道怎么做吗?

c# mono cross-platform monodevelop

10
推荐指数
1
解决办法
8591
查看次数

如何从文件中删除xml元素?

在XML文件中,例如:

<Snippets>
 <Snippet name="abc">
   <SnippetCode>
   code goes here
   </SnippetCode>
 </Snippet>

 <Snippet name="def">
   <SnippetCode>
   code goes here
   </SnippetCode>
 </Snippet>
</Snippets>
Run Code Online (Sandbox Code Playgroud)

当只给出属性名称(如abcdef)时,如何删除元素?

c# xml .net-2.0

9
推荐指数
1
解决办法
4万
查看次数

C#换行每n个字符

假设我有一个带有文本的字符串:"这是一个测试".我怎么会每n个字符拆分一次?所以如果n是10,那么它会显示:

"THIS IS A "
"TEST"
Run Code Online (Sandbox Code Playgroud)

你明白了.原因是因为我想将一条非常大的线分成更小的线,有点像自动换行.我想我可以使用string.Split(),但我不知道如何和我感到困惑.

任何帮助,将不胜感激.

c# split character line

7
推荐指数
1
解决办法
2万
查看次数

C# 导入 C++ dll

我有一个托管 dll 文件,它将函数从 C++ dll 导入到托管环境。我在程序中使用了它的一些功能,但问题是,当我使用它时出现此错误:

无法加载 DLL“Libraries\lib.dll”:找不到指定的模块。(HRESULT 异常:0x8007007E)

我将 .dll 文件放置在程序目录和 system32 文件夹中。然而,它仍然不起作用。我想我必须使用 DLLImport 但我不知道如何使用它..即使在看了一些例子之后我仍然很困惑。有人可以帮我吗?

c# c++ import dll function

6
推荐指数
1
解决办法
3万
查看次数

C#resx文件错误

我的.resx文件出现了一个奇怪的错误:

"无效的Resx文件.ResX输入无效.无法找到ResX读取器和写入器类型名称的有效"resheader"标签.C:\ Documents and Settings\Users\My Documents\Visual Studio 2010\Projects\dock\WinForms\Dock\strings.resx"

我所做的是将现有VS 2010解决方案中的一些文件替换为VS 2008解决方案中的一些旧文件,大多数文件工作正常,但我收到此错误,我不知道如何修复它.如果它有所不同,是该文件的源代码.

我正在使用.NET WinForms 4.0,如果这很重要的话.

c# error-handling resx file

6
推荐指数
1
解决办法
1万
查看次数