代码改变世界

HashTable和HashSet中的类型陷阱

2013-09-13 17:06 by 黑眼圈Mars, 1530 阅读, 0 推荐, 收藏, 编辑
摘要:发现这个陷阱的起因是这样的:我现在有上百万字符串,我准备用TopK算法统计出出现次数做多的前100个字符串。首先我用Hashtable统计出了每个字符串出现的次数,然后我突然发现需要用一个字典把这些字符串中无用的词过滤掉,所以我又定义了一个HashSet作为统计字典。我最初的代码如下: 1 Stopwatch st = new Stopwatch();//计时器 2 Hashtable queryTable = TopK.GetHashtable();//获得HashTable 3 HashSet test = new HashSet()... 阅读全文

请问下.net俱乐部这个组织现在还存在么?

2013-09-09 08:50 by 黑眼圈Mars, 1501 阅读, 1 推荐, 收藏, 编辑
摘要:各位好,我是北京的一名.net开发人员,一直在想有什么线下技术活动可以开拓自己的视野,扩展人脉,我知道曾经有一个.net俱乐部很活跃可是现在我在百度上搜了下.net俱乐部的信息,已经基本找不到2010年以后的信息http://msdn.microsoft.com/zh-cn/bb220812.aspx找到了一个微软官方的连接,可是当我打开以后,所有的链接都指向了广告或者垃圾网站真心不解然后我又在QQ群里搜索 .net俱乐部字样,能搜到的群倒是很多,除了群1(拒绝任何人加入)外,其他群都可以加入,可是都已经是那种半天没有人说话的死群求各位知道真相的人解惑,同时也非常想认识真正的前辈,拓宽视野和职 阅读全文

redis在.net架构中的应用(2)--并发和原子操作不可兼得

2013-08-30 16:22 by 黑眼圈Mars, 6795 阅读, 5 推荐, 收藏, 编辑
摘要:在上一篇文章中,我主要向大家介绍了利用servicestack连接redis以及一些redis的基本数据类型,传送门本文中,我将通过一个具体应用场景为大家介绍redis中的并发和原子操作其中用到的redis命令,请大家去redis官网查询http://www.redis.io/commands一 一个投票统计的应用场景假设我要做一个实时统计投票数的应用,这个投票总共有A、B、C、D四个选项,因为是一个高并发的场景,所以我准备用redis来存储投票数 我们首先利用redis-cli模拟这个过程,打开命令终端,新建一个hash类型的key,叫做TicketCount, 编号为1,然后我们将选项作为 阅读全文

redis在.net架构中的应用(1)--使用servicestack连接redis

2013-08-28 15:18 by 黑眼圈Mars, 13980 阅读, 13 推荐, 收藏, 编辑
摘要:引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/stack-overflow-architecture-update-now-at-95-million-page-vi.html。从文中可以看到,该网站运用了redis作为其缓存层。而新浪微博早就已经大量使用redis。作为一个新兴的nosql数据库,redis既解决了memcached持久化的问题,又在性能上和传统的memcached+mysql不相上下。1 redis安装与配置目前redis在wi 阅读全文

VS2012中使用SOS调试CLR

2013-08-22 18:40 by 黑眼圈Mars, 1363 阅读, 0 推荐, 收藏, 编辑
摘要:之前看了《用WinDbg探索CLR世界》的一些列文章,发现SOS真的是一个非常好的调试.net的工具,然后又惊喜的在http://blogs.msdn.com/b/mariohewardt/archive/2012/06/05/visual-studio-2012-and-windbg-integration.aspx 上看到原来windbg已经被集成到VS2012的IDE中。本文主要讲解在VS2012中调用SOS的基本步骤1 SOS是一个非托管的DLL,要使用SOS调试,首先需要打开本地的非托管代码调试选项,Debug--->Options and Settings --->Su 阅读全文

C#实现的协同过滤算法

2013-07-03 11:01 by 黑眼圈Mars, 1119 阅读, 0 推荐, 收藏, 编辑
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace SlopeOne{ public class Rating { public float Value { get; set; } public int Freq { get; set; } public float AverageValue { get { return Value / Freq; } } } public class RatingDifferenceCollection : Dictionary 阅读全文

C#演化过程--各个版本新增加特性

2013-07-02 13:27 by 黑眼圈Mars, 159 阅读, 0 推荐, 收藏, 编辑
摘要: 阅读全文

每天学习一点.net(5) 利用匿名方法Lambda表达式(=>)实现委托

2013-06-15 12:14 by 黑眼圈Mars, 515 阅读, 0 推荐, 收藏, 编辑
摘要:Lambda表达式的语法格式为: 参数列 => 语句或语句块它是一个匿名函数。它包含表达式和语句,常用于创建委托或表达式目录树类型通常Lambda表达式的参数都是可变类型的,由编译器自动确定它的具体类型。但有时编译器难于或无法推断输入类型,就需要为参数显示指定类型,既在参数之前添加参数类型。如下所示的Lambda表达式包括连个参数x和s。其中x是int类型,而s则是string类型。(int x, string s) =>s.Length > x当Lanbda表达式没有参数时,需要使用空的括号表示,如下所示。其中,“()”表示没有参数,而Amethod()是一个具体的方法,该 阅读全文

每天学习一点.net(4) 线程池和执行上下文ExectutionContext

2013-06-15 00:08 by 黑眼圈Mars, 398 阅读, 0 推荐, 收藏, 编辑
摘要:每个线程都关联了一个执行上下文(ExecutionContext)数据结构。执行上下文包括安全设置(压缩栈、Thread的Principal属性和Windows身份)、宿主(System.Threading.HostExecutionContextManager)以及逻辑调用上下文数据(System.Runtime.Messaging.CallContext的LogicalSetData和LogicalGetData方法)当主线程启动另一个线程时,执行上下文就会由主线程流向辅助线程。可利用ExecutionContext类控制执行上下文的流动。一个典型的using System;using S 阅读全文

每天学习一点.net(3)利用Stopwatch 监视程序的运行时间

2013-06-14 15:01 by 黑眼圈Mars, 348 阅读, 0 推荐, 收藏, 编辑
摘要:命名空间:System.DiagnosticsStopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch 方案中,先调用 Start 方法,然后调用 Stop 方法,最后使用 Elapsed 属性检查运行时间。Stopwatch 实例或者在运行,或者已停止;使用 IsRunning 可以确定 Stopwatch 的当前状态。使用 Start 可以开始测量运行时间;使用 Stop 可以停止测量运行时间。通过属性 Elapsed、ElapsedMilliseconds 或 ElapsedTicks 查询运行时间值。当实例正在运行或已停止 阅读全文