|
I would say when you are concatenating a number of strings use a stringbuilder. If it's just a case of concatenating first name and surname of a person object, a stringbuilder would be an overkill.
|
|
|
|
|
In .NET, string class is immutable. Simply put, it means that you cannot modify a string after it's creation. So, for example
string someString = "Hello";
someString += " World"; The program will not add World to the existing string. Instead, it will create a new string object "Hello World" and assigns this to someString and discards the earlier object "Hello" . So, this may not be a big issue if we are dealing with only a few strings. But, if we want to deal with several string operations, then StringBuilder is a good option. As explained here http://msdn.microsoft.com/en-us/library/y9sxk6fy.aspx[^]
This class represents a string-like object whose value is a mutable sequence of characters. The value is said to be mutable because it can be modified once it has been created by appending, removing, replacing, or inserting characters.
And after making all the modifications ToString method of StringBuilder can be used to get the final string.
I think this Code Project article
StringBuilder vs. String, Fast String Operations with .NET 2.0[^]
may be helpful.
modified 17-Apr-12 11:46am.
|
|
|
|
|
Thank you. After reading that it kind of reminds me of how I used buffers in C.
|
|
|
|
|
|
|
Nice one By Abhinav 5+ thanks for info.
|
|
|
|
|
John Skeet has written about this[^]
This is an excellent introduction to this topic. I once scored brownie points in a Job Interview for referring to this stuff when asked why I didn't use StringBuilder in a simple one-time concatenation during a programming test. The interviewer didn't beleive me at first, but a quick test showed similar results to the article.
|
|
|
|
|
|
Hi,
I have defined a custom action for a library to ask for the approver's Name, Title and email-id for a document. This data entered should be taken programmatically to create a digital signature and add this signature inside the document.After this the document should be disabled from editing once signed(just like inserting a signature for a word document, but should be done programmatically). Can somebody post full working code for a sharepoint Visual studio 2010 project for this?
I have googled for the code but none are aiming at my request.
Much Thanks,
Nisha
|
|
|
|
|
Hi All
I am trying to find a way to optimise the below code for my web service
In my webservice i recieve 10 different XML files, each xml file is always the same format, at the moment i have 10 different methods to handle each one, the below code is an example of one of the methods.
The only difference between the methods are the local variables and the node attributes.
Instead of having 10 methods almost identical i would like to have just one.
Can anyone advise on the best way to achieve this ?
thanks
public void NavigateXmlSessionData(XPathNavigator xPathNav)
{
xPathNav.MoveToRoot();
xPathNav.MoveToFirstChild();
xPathNav.MoveToFirstChild();
string description, personId;
description = "";
personId = "";
do
{
if (xPathNav.MoveToFirstChild())
{
while (xPathNav.MoveToNext())
{
switch (xPathNav.Name)
{
#region NodeAttributes
case "Description":
{
StringBuilder strBuild = new StringBuilder(xPathNav.Value, 200);
description = strBuild.Replace('\'', ' ').ToString();
break;
}
case "PersonId":
{
StringBuilder strBuild = new StringBuilder(xPathNav.Value, 200);
personId = strBuild.Replace('\'', ' ').ToString();
break;
}
#endregion
}
}
xPathNav.MoveToParent();
}
ProcessRecord();
description = "";
personId = "";
} while (xPathNav.MoveToNext());
}
|
|
|
|
|
|
Not an answer to your question but if you want to optimize reading XML, use the XMLReader class. It streams the data so you don't have to wait for the whole file to be read and you don't have to wait for indexing to be completed.
Having 1 method instead of 10 isn't going to offer much in the way of optimization but it will make the code more maintainable. Just isolate the minor differences and pass them as arguments or enumerated values.
public void NavigateXmlSessionData(XPathNavigator xPathNav, MyEnum difference)
"You get that on the big jobs."
|
|
|
|
|
Hi all !
in my project to reading an excel file , there is no problem in windows XP , but in Win Seven(7) , I have problem to reading the excel 2007 file . here in some part of code :
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;""", openFileDlgData.FileName);
string SheetName = "Test";
string query = String.Format(@"select * from [{0}$]", SheetName);
try
{
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, conn);
System.Data.DataTable dt = new System.Data.DataTable("ExcelData");
dataAdapter.Fill(dt);
...
Thanks in any help !
|
|
|
|
|
What problem do you have? That's the important part that's missing from your question.
|
|
|
|
|
System.InvalidOpertionException:The 'Microsoft.ACE.OLEDB.12.0' provider
|
|
|
|
|
32 or 64 bit?
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
|
nassimnastaran wrote:
64 bit
That is probably your problem.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
It's either not installed, or you're mixing environments. Read here[^].
Bastard Programmer from Hell
|
|
|
|
|
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(Name = "TestService", ConformsTo = WsiProfiles.BasicProfile1_1)]
public class WebService : System.Web.Services.WebService {
// Add a member variable of the type deriving from SoapHeader.
public MyHeader timeStamp;
[WebMethod(Description = "A method that requires authentication")]
[SoapDocumentMethod(Binding = "TestService")]
[SoapHeaderAttribute("timeStamp", Direction = SoapHeaderDirection.InOut)]
public XmlNode GetXML()
{ XmlDocument doc = new XmlDocument();
doc.LoadXml("" + "" +"<title>Pride And Prejudice</title>" +"" + "");
return doc; }
=---client call ----
protected void Page_Load(object sender, EventArgs e)
{
localhost.MyHeader header = new localhost.MyHeader();
header.UserName = "test";
header.Password = "test";
localhost.WebService proxy = new localhost.WebService();
proxy.MyHeaderValue = header;
XmlDocument xmlDoc = new XmlDocument();
XmlNode elem = proxy.GetXML();
XmlNodeReader nodeReader = new XmlNodeReader(elem);
xmlDoc.InnerXml = elem.InnerXml;
string strXML = xmlDoc.InnerXml;
}
---output is---
<title>Pride And Prejudice</title>
----how to add soap header like----
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<MyHeader xmlns="http://tempuri.org/">
<UserName>string</UserName>
<Password>string</Password>
</MyHeader>
</soap:Header>
|
|
|
|
|
As you have already been told, cross posting is not allowed. Please stop doing it.
|
|
|
|
|
i making a exam suite project what may coding behind login mail,password,for new user labels and what may be coding behind ok,cancel and sign up button
|
|
|
|
|
Some c# to make it work I guess?
|
|
|
|
|
|
I made a button that if clicked, it would get the element ID of an HTML button which is "ContinueButton" and then it would invoke a click on it. Just as coded below. So basically, it will click this HTML button and it would eventually lead to the next HTML page.
private void button11_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("ContinueButton").InvokeMember("Click");
Now, after the next HTML page has loaded, it contains a web form. This web form has an element ID by "secretnumber."
I made a code below and it should fill this web form.
webBrowser1.Document.GetElementById("secretnumber").SetAttribute("value", "320");
}
However, the program stopped and it didn't fill the web form ("secretnumber"). Please help me.
I added this code too but it didn't seem to work.
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
|
|
|
|