相关疑难解决方法(0)

比较2 Dictionary <string,string> Instances

我想比较两个Dictionary<string, string>实例的内容,无论它们包含的项目的顺序如何. SequenceEquals还比较了顺序,所以我首先按键排序字典,然后调用SequenceEquals.

有没有我可以使用的方法而不是SequenceEquals只比较内容?

如果没有,这是理想的方法吗?

Dictionary<string, string> source = new Dictionary<string, string>();
Dictionary<string, string> target = new Dictionary<string, string>();

source["foo"] = "bar";
source["baz"] = "zed";
source["blah"] = null;

target["baz"] = "zed";
target["blah"] = null;
target["foo"] = "bar";

// sequenceEquals will be false
var sequenceEqual = source.SequenceEqual(target);
// contentsEqual will be true
var contentsEqual = source.OrderBy(x => x.Key).SequenceEqual(target.OrderBy(x => x.Key));
Run Code Online (Sandbox Code Playgroud)

c# linq comparison dictionary

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

使用参数检索LINQ to sql语句(IQueryable)

我试图弄清楚是否有办法检索在数据库服务器上执行的(完整)sql语句.
我已经发现了一些东西,但它并不是我想要的东西:

IQueryable<SomeType> someQuery = ...
string command = dataContext.GetCommand(query).CommandText;
Run Code Online (Sandbox Code Playgroud)

在我的情况下,这给了我一个命令字符串,如:

SELECT TOP (50) [t0].[ID], ....
FROM [dbo].[someTable] AS [t0]
WHERE ([t0].[someColumn] IS NOT NULL) AND (([t0].[someColumn]) IN (@p0))
Run Code Online (Sandbox Code Playgroud)

在数据库上执行:

exec sp_executesql N'SELECT TOP (50) [t0].[ID], ...
FROM [dbo].[someTable] AS [t0]
WHERE ([t0].[someColumn] IS NOT NULL) AND (([t0].[someColumn]) IN (@p0, @p1))',N'@p0  int,@p1 int',@p0=401,@p1=201
Run Code Online (Sandbox Code Playgroud)

有没有办法从C#代码中检索这个"完整"语句(以及参数值)?

c# linq-to-sql

35
推荐指数
5
解决办法
3万
查看次数

标签 统计

c# ×2

comparison ×1

dictionary ×1

linq ×1

linq-to-sql ×1