我有一个lambda表达式,可以从Dictionary获得结果.
var sortedDict = (from entry in dctMetrics
orderby entry.Value descending
select entry);
Run Code Online (Sandbox Code Playgroud)
表达式拉回了我需要的对,我可以在IDE的调试模式中看到它们.
如何将此转换回与源相同类型的字典?我知道sortedDict的TElement是一个KeyValuePair,但是我无法完全理解ToDictionary扩展方法的语法.我也尝试将var结果分段构造一个新的字典,但无济于事.
有这样的东西(功能明智):
var results = (from entry in dictionary
orderby entry.Value descending
select entry);
Dictionary<string,float> newDictionary = results as (Dictionary<string,float>);
Run Code Online (Sandbox Code Playgroud) 我最近一直在努力学习关于.Net多线程的一切.(变得更好,但仍然觉得有很多东西需要学习).现在我专注于APM(异步编程模型),这通常被称为:
//non async method
public int DoSomeWork(int arg)
{
//do something and return result
}
//async version
public IAsyncResult BeginDoSomeWork(int arg, AsyncCallback callback, object @object)
{
}
public int EndDoSomeWork(IAsyncResult result)
{
}
Run Code Online (Sandbox Code Playgroud)
现在,假设我正在编写一些库,并且我希望将此功能公开给任何使用我的API的人,我正在考虑实现此模式的方法.实现IAsyncResult接口是可能的,但它似乎相当复杂.我的问题是,如果使用委托是一个可接受的解决方案.我的意思是:
public class MyClass
{
private Func<int, int> func;
//non async method
public int DoSomeWork(int arg)
{
//do something and return result
}
//async version
public IAsyncResult BeginDoSomeWork(int arg, AsyncCallback callback, object @object)
{
this.func = new Func<int, int>(DoSomeWork);
var asyncResult = this.func.BeginInvoke(arg,callback,object);
return asyncResult;
}
public …Run Code Online (Sandbox Code Playgroud) 使用LINQ to SQL类,以及以下代码:
clindt.clinDataContext ctx = new clindt.clinDataContext();
clindt.RoleMembership rm = new clindt.RoleMembership();
rm.Created_By ="bob";
rm.Modified_By ="bob";
rm.ProfileID = 2;
rm.RoleID=1;
rm.Created_Date = DateTime.Now;
rm.Modified_Date = DateTime.Now;
ctx.RoleMemberships.InsertOnSubmit(rm);
ctx.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
"无法翻译表达式'值(clindt.clinDataContext).p_InsertRoleMembership(0,2,1,11/10/2010 2:33:38 PM,"bob",11/10/2010 2:33:38 PM," bob")'进入SQL并且无法将其视为本地表达式."
一些附加信息:类被配置为使用自定义存储过程进行插入.只有3个表发生此错误.有趣的是,它们都在一个名为"安全"的模式中.每个其他表都在'dbo'架构中.
假设您有一个自定义类称为Foo.当你有一个这个类的实例时,在调试过程中,如果你将鼠标悬停在这个对象上,你将看到该类型的完全限定的命名空间名称,或者如果你在这个类中重写ToString,你会看到它.有没有办法定制工具提示会说什么?
作为一个独立商店的年轻(ish)开发人员,我非常欣赏Resharper作为学习工具和mini-QA.话虽这么说,Resharper在某些情况下可能会破坏你的代码(可能是边缘)?
例如(见下文),R#不断暗示我的 - >
this. is redundant 和 catch is redundant
还有其他一些例子,但我并没有像一般情况那样询问具体的例子.
有没有人有一个R#建议打破他们的代码?如果是这样的话,对我来说最重要的是什么呢?我能找到什么才能理解它是否真的给了我不好的建议?
private void LoadMyForm(DataRow row)
{
try
{
this.tbxFirstName.Text = row["FirstName"].ToString();
this.tbxLastName.Text = row["LastName"].ToString();
tbxMiddleName.Text = row["MiddleName"].ToString();
tbxPersonID.Text = row["PersonID"].ToString();
tbxSSN.Text = row["SSN"].ToString();
tbxEmailAddress.Text = row["EmailAddress"].ToString();
}
catch (Exception)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud) 我已经创建了一个通用的方法
public void BindRecordSet<T>(IEnumerable<T> coll1, string propertyName)
where T : class
Run Code Online (Sandbox Code Playgroud)
var result = ((T[])(coll1.Result))[0];
string result= secFTSResult[propertyName];
我收到错误无法将索引应用于'T'类型的表达式
请帮忙谢谢
正如标题所说.我希望我的应用程序在Windows Mobile设备打开时启动?我正在使用C#中的.NET Compact Framework 3.5开发此应用程序.谢谢!
我在电子表格中有一个单元格,它是Excel中的日期对象,但是当它出自C1的xls类时,变成了一个双精度(类似于2009年1月7日的39820.0).我读到这是朱利安的日期格式.有人能告诉我如何将其解析回C#中的DateTime吗?
更新:看起来我可能没有朱利安日期,而是自1899年12月30日以来的天数.
我有以下数据集
<ids>
<id1 attr1="value1" attr2="value2" />
<id2 attr3="value3" attr4="value4" />
<id3 attr2="value6" attr5="value7" />
</ids>
Run Code Online (Sandbox Code Playgroud)
基本上,它是一个XML,可以包含任何具有任何属性值的属性名称的节点名称.
解析XML后,我将属性数据存储在Dictionary中.然后我将相同的Dictionary存储为一个值,节点名称作为键.所以我的数据结构将是Dictionary <string,Dictionary <string,string >>(让我们给它一个名为"dict"的变量名)所以如果我想在id1节点中获取attr2的值,我会这样做:
string value = dict["id1"]["attr2"];
// value will be value2
Run Code Online (Sandbox Code Playgroud)
我认为这对我的需求来说是一个非常简单和可行的解决方案,但我的脑海中似乎只有这样的声音告诉我,我错过了不同的数据结构或更简单的解决方案.每个人都在想什么?
如何将列表框中的选定项添加到列表以获取所选的用户名
我的代码:
List<String> lstitems = new List<String>();
foreach (string str in lstUserName.SelectedItem.Text)
{
lstitems.Add(str);
}
Run Code Online (Sandbox Code Playgroud)
它告诉我错误说无法将char转换为字符串....如何将项目添加到列表或数组
即时通讯使用字典来存储实时到期日期,如股票价格.我想存储最多10000个刻度,最后一次是index.of 0.但是使用字典添加方法,添加的最后一个tick不是index.of 0,它会一直增加到10000.
有什么方法可以解决它.
public static Dictionary<string, int> storePrice(string intru, double price)
{
Dictionary<string, int> d = new Dictionary<string, int>();
d.Add(intru, price);
}
Run Code Online (Sandbox Code Playgroud)
谢谢
c# ×10
.net ×4
arrays ×1
asp.net ×1
asynchronous ×1
debugging ×1
dictionary ×1
julian-date ×1
key-value ×1
lambda ×1
linq ×1
linq-to-sql ×1
listbox ×1
resharper ×1