我最近从去年开始阅读了Phil Haack的帖子(The Most Useful .NET Utility Classes Developers Tend To Reinvent Rather Than Reuse),并且认为我会看到是否有人在列表中添加任何内容。
答案 0 :(得分:47)
人们倾向于使用以下丑陋且必然会失败的人:
string path = basePath + "\\" + fileName;
更好更安全的方式:
string path = Path.Combine(basePath, fileName);
我也看到人们编写自定义方法来读取文件中的所有字节。 这个非常方便:
byte[] fileData = File.ReadAllBytes(path); // use path from Path.Combine
正如TheXenocide所指出,同样适用于File.ReadAllText()
和File.ReadAllLines()
答案 1 :(得分:36)
String.IsNullOrEmpty()
答案 2 :(得分:35)
Path.GetFileNameWithoutExtension(string path)
返回没有扩展名的指定路径字符串的文件名。
Path.GetTempFileName()
在磁盘上创建一个唯一命名的零字节临时文件,并返回该文件的完整路径。
答案 3 :(得分:28)
System.Diagnostics.Stopwatch
班。
答案 4 :(得分:23)
的String.Format。
我见过的次数
return "£" & iSomeValue
而不是
return String.Format ("{0:c}", iSomeValue)
或追加百分号的人 - 这样的事情。
答案 5 :(得分:22)
Enum.Parse()
答案 6 :(得分:20)
我最近需要在Windows应用程序中下载一些文件。我在WebClient对象上找到了DownloadFile方法:
WebClient wc = new WebClient();
wc.DownloadFile(sourceURLAddress, destFileName);
答案 7 :(得分:20)
试图找出我的文档在用户计算机上的位置。只需使用以下内容:
string directory =
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
答案 8 :(得分:19)
String.Join()(但是,几乎所有人都知道string.Split,似乎每次机会都会使用它......)
答案 9 :(得分:14)
硬编码a /到目录操作字符串而不是使用:
IO.Path.DirectorySeparatorChar
答案 10 :(得分:13)
StringBuilder 类,尤其是方法 AppendFormat 。
P.S。:如果您正在寻找字符串操作性能测量: StringBuilder vs. String / Fast String Operations with .NET 2.0
答案 11 :(得分:12)
Environment.NewLine
答案 12 :(得分:12)
不要使用Guid生成文件名,只需使用:
Path.GetRandomFileName()
答案 13 :(得分:10)
很多新的Linq功能看起来很不为人知:
<强> Any<T>() & All<T>()
强>
if( myCollection.Any( x => x.IsSomething ) )
//...
bool allValid = myCollection.All(
x => x.IsValid );
<强> ToList<T>(), ToArray<T>(), ToDictionary<T>()
强>
var newDict = myCollection.ToDictionary(
x => x.Name,
x => x.Value );
<强> First<T>(), FirstOrDefault<T>()
强>
return dbAccessor.GetFromTable( id ).
FirstOrDefault();
<强> Where<T>()
强>
//instead of
foreach( Type item in myCollection )
if( item.IsValid )
//do stuff
//you can also do
foreach( var item in myCollection.Where( x => x.IsValid ) )
//do stuff
//note only a simple sample - the logic could be a lot more complex
您可以在Linq语法之外使用的所有非常有用的小函数。
答案 14 :(得分:9)
答案 15 :(得分:8)
答案 16 :(得分:8)
input.StartsWith("stuff")
代替Regex.IsMatch(input, @"^stuff")
答案 17 :(得分:8)
System.Text.RegularExpressions.Regex
答案 18 :(得分:7)
对于隐藏在Microsoft.VisualBasic命名空间下的所有内容,TextFieldParser实际上是一个非常好的csv解析器。我看到很多人要么推出自己的(非常糟糕),要么在Code Plex上使用类似于Fast CSV库的东西,甚至不知道这已经融入框架中。
答案 19 :(得分:6)
System.IO.File.ReadAllText
vs使用StreamReader为小文件编写逻辑。
System.IO.File.WriteAllText
vs使用StreamWriter为小文件编写逻辑。
答案 20 :(得分:6)
档案。
using System.IO;
File.Exists(FileNamePath)
Directory.Exists(strDirPath)
File.Move(currentLocation, newLocation);
File.Delete(fileToDelete);
Directory.CreateDirectory(directory)
System.IO.FileStream file = System.IO.File.Create(fullFilePath);
答案 21 :(得分:4)
大多数人忘记了如果文件夹已经存在,Directory.CreateDirectory()会正常降级,并使用无意义的if(!Directory.Exists(....))调用来包装它。
答案 22 :(得分:4)
许多人似乎想要手动单步执行XML文件来查找内容而不是使用XPathNaviagator。
答案 23 :(得分:1)
myString.Equals(anotherString)
和选项包括特定文化的。
我敢打赌,至少有50%的开发者会写下这样的内容:if(s ==“id”){...}
答案 24 :(得分:-5)
Path.Append在我见过的东西中总是被遗忘。