我不知道我是否在问一个愚蠢的问题,但我想知道.NET中的Convert.ToBase64String函数是否返回与源字节大小相同的长度,还是不同?我想试试MSDN本身的文章如何:使用SQL Server 2000的表单身份验证来哈希我的密码,但我发现他们用来创建salt字符串的函数返回的长度比应该返回的长3.这里要澄清的是该文章中的代码.
private static string CreateSalt(int size)
{
// Generate a cryptographic random number using the cryptographic
// service provider
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[size];
rng.GetBytes(buff);
// Return a Base64 string representation of the random number
return Convert.ToBase64String(buff);
}
Run Code Online (Sandbox Code Playgroud) 我有一个包含5000多个项目的通用集合.所有项目都是唯一的,因此我使用SingleOrDefault从集合中提取项目.今天我使用Red Gate ANTS分析器来查看代码,发现我的SingleOrDefault调用有5000万次点击达到1800万次(~3.5秒),而当我将它改为FirstOrDefault时,它有9百万次击中(~1.5秒).
我使用了SingleOrDefault,因为我知道集合中的所有项目都是唯一的.
编辑:问题是为什么FirstOrDefault比SingleOrDefault更快,即使这是我们应该使用SingleOrDefault的确切场景.
我试图在我的数据转换包中使用查找转换,并且所有其他查找转换都很顺利,但只有当我启用部分缓存模式时,一个组件才会返回匹配的行.如果我使用完全缓存模式,则所有数据都将路由到错误路径.我正在使用SQL 2005 SSIS.任何帮助赞赏..