我正在尝试用LinqPad编写一个Dump()方法,等同于我自己的问题.我正在从Java迁移到C#,这是一个练习而不是业务需求.除了倾倒字典之外,我几乎一切都在工作.
问题是KeyValuePair是一种Value类型.对于大多数其他值类型,我只需调用ToString方法,但这是不够的,因为KeyValuePair可能包含Enumerables和其他具有不良ToString方法的对象.所以我需要弄清楚它是否是一个KeyValuePair然后再投射它.在Java中,我可以使用通配符泛型,但我不知道C#中的等价物.
在给定对象o的情况下,您的任务确定它是否为KeyValuePair并在其键和值上调用Print.
Print(object o) {
...
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我想要一个方法来更新IEnumerable的某些条目.我发现在条目中做一个foreach并更新值失败,因为我在克隆集合的后台.这是因为我的IEnumerable得到了一些LINQ-> SQL查询的支持.
通过更改方法以获取List我已经更改了此行为,Lists总是可变的,因此该方法更改列表中的实际对象.而不是要求传递List是否有可以使用的Mutable接口?
// Will not behave as consistently for all IEnumerables
public void UpdateYesterday (IEnumerable<Job> jobs) {
foreach (var job in jobs.Where(x => x.date == Yesterday)) {
job.done = true;
}
}
...
public class Job {
...
public DateTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud) var details= from row in databaseTable
where row.id equals queryId
select new
{
Dict = row.ToDictionary(x => x.Name, x => x.Value),
};
Run Code Online (Sandbox Code Playgroud)
执行此LINQ to SQL时,我得到错误;
System.NotSupportedException:不支持查询运算符"ToDictionary".
我需要做的是先将行拉入内存,但我不确定如何.我尝试在各个地方调用ToList,但没有运气.
我正在制作一个条形图,我想要每个条形有两个单独的渐变。首先,我想要一个渐变,从上到下纯红色到透明红色。我想在顶部绘制一个从右到左、黑色到不透明的渐变。
所以 - 在左下角我们应该有;
所以实际上我想采用纯色,从左到右的渐变添加到黑色,然后获取输出并添加从上到下的渐变到透明度。
所有这一切,我希望它在一个刷子里,这甚至可能吗?