标签: stringbuilder

如何将此StringBuilder-to-XML代码更改为LINQ-to-XML?

在我的应用程序中,我使用StringBuilder使用此代码构建XML文件:

StringBuilder sb = new StringBuilder();
sb.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>" + Environment.NewLine);

sb.Append(String.Format("<{0}>{1}", _pluralCamelNotation, Environment.NewLine));
for (int index = 0; index < 3; index++)
{
    sb.Append(String.Format("\t<{0}>{1}", _singularCamelNotation, Environment.NewLine));
    foreach (DataType dataType in _allDataTypes)
    {
        sb.Append(String.Format("\t\t<{0}>{2}</{0}>{1}", dataType.CamelCaseNotation, Environment.NewLine, dataType.GetDummyData()));
    }
    sb.Append(String.Format("\t</{0}>{1}", _singularCamelNotation, Environment.NewLine));
}
sb.Append(String.Format("</{0}>{1}", _pluralCamelNotation, Environment.NewLine));

return sb.ToString();
Run Code Online (Sandbox Code Playgroud)

如何使用LINQ执行相同的操作,如下所示:

PSEUDO-CODE:

var xdoc = new XDocument(
    new XDeclaration("1.0", "utf-8", null),
    for (int index = 0; index < 3; index++) {
        new XElement(_pluralCamelNotation,
            _allDataTypes.Select(datatype => new XElement(_singularCamelNotation,
                new XElement(datatype.CamelCaseNotation, …
Run Code Online (Sandbox Code Playgroud)

c# linq stringbuilder

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

如何利用StreamWriter写入csv文件?

所以这就是我正在使用的东西.我正在尝试获取XML文件,从属性中提取信息,将它们附加在一起,然后将其写入CSV文件.我还是比较新的编程,而另一个程序员今天不在办公室,所以我真的可以使用一些帮助.

我的第一个问题,关于StringBuilder.我是否需要在StringBuilder的末尾添加一个AppendLine,以便foreach循环中的每个字符串输出都在一个新行上?我是否需要在foreach循环中执行此操作?

我的第二个问题是实际上将我的字符串写入CSV文件.它看起来像什么?

swOutputFile.WriteLine(strAppendedJobData)
Run Code Online (Sandbox Code Playgroud)

我认为这也会进入foreach循环,但我不太确定.

感谢您的帮助,我希望我以一种易于理解的方式表达我的问题.

//Create a stream writer to write the data from returned XML job ticket to a new CSV
        StreamWriter swOutputFile;
        string strComma = ",";
        swOutputFile = new StreamWriter(new FileStream("C:\\Dev\\AppendedJobData.csv", FileMode.Create, FileAccess.Write, FileShare.Read));

        //Get nodes from returned XML ticket
        XmlNodeList xmlJobs = xdResults.SelectNodes("/Updates/Jobs/Job");
        //Pull out data from XML attributes
        foreach (XmlElement xeJobUpdate in xmlJobs)
        {
            //Break down the job data
            string strProjectID = xeJobUpdate.GetAttribute("SharpOwlProjectID");
            string strJobNumber = xeJobUpdate.GetAttribute("JobNumber");
            string strClientCode = xeJobUpdate.GetAttribute("SharpOwlClientCode");
            string strClient = xeJobUpdate.GetAttribute("Client"); …
Run Code Online (Sandbox Code Playgroud)

c# csv string stringbuilder streamwriter

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

C#是否可以创建动态StringBuilder数组?

我试图在C#中动态创建一个StringBuilder数组,我没有太多运气.

我想根据给定的客户端数字向StringBuilder(sb)添加信息,该数字将根据我可能拥有的客户端数量动态变化.我可能有2个或者我可能有20个.sb将用于在我的程序中稍后为每个客户端构建一个报告.

例如,我有以下3个客户:

    Client A = 0 
    Client B = 1
    Client C = 2
Run Code Online (Sandbox Code Playgroud)

如果客户A报告他有8个苹果,我想将字符串"8 apples"添加到sb [0].

如果客户B报告他有3个橙子我想将字符串"3 oranges"添加到sb [1].

以上只是我想要实现的想法的一个简单例子.实际上,我将向某人添加大量信息.

我已经尝试过以下运动,但没有太多运气让他们以我期望或想要的方式工作.

StringBuilder[] sbFileError = new StringBuilder[clientCount];
List<StringBuilder> sbFileError = new List<StringBuilder>();
Run Code Online (Sandbox Code Playgroud)

有什么想法吗?是否可以创建StringBuilder数组?

谢谢!

c# arrays stringbuilder visual-studio-2010 c#-4.0

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

使用log4j String或StringBuilder打印日志的效率更高

伙计我在我的小java实用程序中打印了很多日志,所以只想到这个问题,如果它是一个非常大的系统和效率很重要,并且如果我们生成了很多日志(使用log4j)这是更好的对象来保存记录消息String或StringBuilder.

java string stringbuilder log4j

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

Stringbuilder无法正常工作

我有一个奇怪的问题.这是代码:

public class TaxiDetails extends Activity{

ArrayList<Bus> listBus = new ArrayList<Bus>();
ArrayList<Taxi> listTaxi = new ArrayList<Taxi>();
TextView detalji, title;
ImageView backBtn;
String strType;
StringBuilder builder = new StringBuilder();

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);  
    setContentView(R.layout.numbers_details);
    detalji = (TextView) findViewById(R.id.txtNumbDetails);
    title = (TextView) findViewById(R.id.txtTitleNumbers);
    detalji.setTypeface(Typeface.DEFAULT_BOLD);
    Typeface TF = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Black.ttf");
    backBtn = (ImageView) findViewById(R.id.backBtn);
    title.setTypeface(TF);

    Intent in = getIntent();
    strType = in.getStringExtra("type");

    if  (strType.equals("TAXI")){
        listTaxi = (ArrayList<Taxi>) in.getSerializableExtra("TAXI");
        title.setText("Taxi");
    } else if (strType.equals("BUS")){
        listBus = (ArrayList<Bus>) in.getSerializableExtra("BUS");
        title.setText("BUS");
    }   

    if …
Run Code Online (Sandbox Code Playgroud)

java stringbuilder android for-loop

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

用Java编写的StringBuilder

我有一个方法从sdcard(Android)加载文件,然后使用StringBuilder读取它.我正在阅读的文本是用我的母语字符写的,例如ąźż... StringBuilder(或FileInputStream)不能正确地读取它们.我如何设置正确的编码?

这是代码:

File file = new File(filePath);
            FileInputStream fis = null;
            StringBuilder builder = new StringBuilder();

            try {
                fis = new FileInputStream(file);
                int content;
                while ((content = fis.read()) != -1) {
                    builder.append((char) content);
                }

            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (fis != null)
                        fis.close();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            System.out.println("File Contents = " + builder.toString());
            contactService.updateContacts(builder.toString());
Run Code Online (Sandbox Code Playgroud)

stringbuilder encoding file fileinputstream

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

添加到字符串字段中

告诉我这个代码C#有什么问题.

        string str = string.Empty;
        for (var i = 1; i <= 1000; i++)
            str += i.ToString();
Run Code Online (Sandbox Code Playgroud)

这是面试问题.

c# string format stringbuilder tostring

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

ASP .NET C#Performance StringBuilder vs concatenation

我测试了一个简单的连接:

 string res = "";
 for (var i = 0; i < 1000; i++)
 {
     res += mystring;     
 }
 return res;
Run Code Online (Sandbox Code Playgroud)

另一个使用StringBuilder对象:

 StringBuilder builder = new StringBuilder();
 for (var i = 0; i < 1000; i++)
 {
     builder.Append(mystring);           
 }
 return builder.ToString();
Run Code Online (Sandbox Code Playgroud)

循环越大,使用StringBuilder的性能越好.

我想知道这个结果的真正原因,我的意思是,创建,实现一个对象,调用方法的事实比简单的"string1 + string2"更快?

c# asp.net performance stringbuilder concatenation

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

我们可以在String中将String数组添加到StringBuffer或StringBuilder中吗?

现在我正在开发一个关于Java的简单项目.我在String Builder中附加并在控制台上打印字符串.当我尝试将字符串数组追加到字符串生成器中时,它会在控制台上打印对象而不是字符串数组.告诉我的尝试是对还是错.

java arrays string stringbuilder stringbuffer

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

如果在StringBuffer(或StringBuilder)上连续调用append()而不重用目标变量,我该如何提高性能

我在Java中有以下代码.

String foo = " ";
Run Code Online (Sandbox Code Playgroud)

方法1:

StringBuffer buf = new StringBuffer();
buf.append("Hello");
buf.append(foo);
buf.append("World");  
Run Code Online (Sandbox Code Playgroud)

方法2:

StringBuffer buf = new StringBuffer();
buf.append("Hello").append(foo).append("World");
Run Code Online (Sandbox Code Playgroud)

有人可以启发我,方法2如何才能提高代码的性能?

https://pmd.github.io/pmd-5.4.2/pmd-java/rules/java/strings.html#ConsecutiveAppendsShouldReuse

java stringbuilder stringbuffer pmd

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