草庐IT

action_list

全部标签

c# - 在 MVC 5 中的 Action Filters 中调用异步方法

我正在编写一个使用ActionFilterAttribute的Action过滤器(继承自HttpClient)将数据发布到OnResultExecuted中的外部服务器方法。HttpClient有方法PostAsync它返回一个可等待的Task.publicoverridevoidOnResultExecuted(ResultExecutedContextfilterContext){using(varclient=newHttpClient()){vartask=client.PostAsync(GetUri(),GetContent());varresult=task.Result

c# - 将带有 List 的字典转换为 IEnumerable

我有一本字典:Dictionary>test=newDictionary>();然后我填充这个字典,因此我需要这个列表以便我可以调用Add()。我的问题是函数需要返回:Dictionary>有没有简单的方法可以做到这一点,而无需执行明显的操作并循环遍历我的原始字典并手动执行? 最佳答案 returndictionary.ToDictionary(x=>x.Key,x=>x.Value.AsEnumerable()) 关于c#-将带有List的字典转换为IEnumerable,我们在Sta

c# - IQueryable<T> 给出的结果与 List<T> 不同

如果我在我的EntityFramework结果中对IQueryable使用Select,我将得到4个项目。如果我在IQueryable.ToList()上使用Select,我会得到所有36个项目。函数代码如下:publicImagesGetModelViewGet(intstart,intcount){if(countImageHandler.MaxResult)count=ImageHandler.MaxResult;IQueryableimagesList=ImagesHandler.FetchRangeScore(start,count).Where(m=>m.Domain==D

c# - 将 Action<T> 存储在单个集合中供以后使用

我试图在内存中保存Action类型的引用集合其中T是变量类型我找到了dynamic的解决方案但我不想使用动态解决方案publicclassMessageSubscriptor:IMessageSubscriptorPool{Dictionary>Callbacks=newDictionary>();publicvoidSubscribe(Actioncallback)whereT:IMessage{Callbacks.Add(typeof(T),(obj)=>callback(obj));}}有谁知道处理这个问题的更好方法吗?提前致谢。 最佳答案

c# - List<T>.Last() 是否枚举集合?

考虑List的边界是已知的,确实.Last()枚举集合?我问这个是因为documentation说它是由Enumerable定义的(在这种情况下,它将需要枚举集合)如果它确实枚举了集合,那么我可以简单地通过索引访问最后一个元素(正如我们所知的.Count的List),但必须这样做似乎很愚蠢。... 最佳答案 如果集合是IEnumerable,它会枚举集合而不是IList(对于数组或列表,将使用索引)。Enumerable.Last通过以下方式实现(ILSpy):publicstaticTSourceLast(thisIEnumera

c# - 返回 List<T> 的只读包装器的哪种方式更可取?

比如说,我们有一个带有私有(private)列表的通用类。我们至少可以通过两种方式让它返回此列表的只读包装器:publicclassTest{publicListlist=newList();publicIEnumerableValues1{get{foreach(Tiinlist)yieldreturni;}}publicIEnumerableValues2{get{returnlist.AsReadOnly();}}}Values1和Values2都反射(reflect)了底层集合中的任何变化,并防止它通过自身进行修改。哪种方式更可取?应该注意什么?或者还有其他更好的方法吗?

c# - Web API 2/MVC 5 : Attribute Routing passing parameters as querystring to target different actions on same controller

我一直在玩新的WebAPI2(顺便说一句,它看起来很有前途),但我有点头疼要让一些路由正常工作。当我有GetAllUsers/GetUser(intid)时一切正常,但是当我添加GetUserByName(stringname)和/或GetUserByUsername(stringusername)时,事情开始变得令人毛骨悚然。我知道int将是第一个,我可以重新排序路由,但让我们想象一下以下场景:用户可以有一个有效的username=1234或name=1234(我知道这不太可能,但我们需要防止任何可能的情况)并且我们可能有一个有效的1234数据库中的ID和所有路由将混淆。也许这是我们

c# - 它有什么区别 - 使用 Task.Run 运行 'async' Action 委托(delegate)(与默认 Action 委托(delegate)相比)?

我正在努力了解async/await并认为我确实了解有关用法的一些事情。但仍然不太清楚在下面的场景中实际好处是什么。查看Task.Run用法。第一种方法使用普通委托(delegate)并使用Thread.Sleep,但第二种方法使用“异步”委托(delegate)和Task.Delay。我的问题是:这对这个方法有什么影响(或没有影响)?该方法本身是一个异步方法。该代码正在创建一个单独的线程(通过Task.Run),并且该线程除了执行该委托(delegate)之外别无他法。因此,即使它在Task.Delay上产生等待,在这种情况下有什么用,因为线程无论如何都是一个孤立的线程,不用于任何其

c# - 在 c# 中设置/扩展 List<T> 长度

给定一个List在c#中有没有办法扩展它(在其能力范围内)并将新元素设置为null?我想要类似memset的东西.我不是在这里寻找糖,我想要快速代码。我知道在C中,操作可以在每个条目1-3个asm操作中完成。我找到的最佳解决方案是this:list.AddRange(Enumerable.Repeat(null,count-list.Count));但是这是c#3.0(首选我当前的代码使用:while(list.Count所以这是时间成本的起点。motivationforthis是我需要设置第n个元素,即使它在旧计数之后。 最佳答案

c# - 检查两个 List<T> 是否相等的最快方法

我有两个列表ListA和ListB两者都有1000条记录。Emp是Employee类的一个对象。下面是我的Employee类publicclassEmployee{intID=0;stringName=String.Empty;stringDept=String.Empty;stringAddress=String.Empty;intAge=0;stringEmail=String.Empty;}我想验证两个列表是否相等。Emp对象可以按不同的顺序放置。此外,可能有多个Emp对象在两个列表中具有完全相同的信息。我也必须验证这些。我尝试对列表进行排序并使用SequenceEqual进行比