从C++到C#,我遇到的几个问题

1)StreamReader无法取得正确取得当前位置的问题。

这个问题网上看到有人提了,参见:StreamReader缓冲引起BaseStream.Position不能反映当前Read位置的问题。不过它给出的解决方案不太认同。我的文件有几十兆,不想全部读入内存。如果考虑用Stream/BufferedStream,这样就得自己写ReadLine等函数,也不是好招。

2)C#中似乎只有map(即Dictionary),貌似没multi_map?可怜我偏偏要用到这个数据结构。

目前我老老实实用Dictionary模拟了一个MultiDictionary。大体如下:

     class  MultiDictionary < TKey, TValue >  : Dictionary < TKey, List < TValue >>
    {
        
public   void  Add(TKey key, TValue value)
        {
            List
< TValue >  list;
            
if  ( base .TryGetValue(key, out list))
            {
                list.Add(value);
            }
            
else
            {
                list 
=   new  List < TValue > ();
                list.Add(value);
                
base .Add(key, list);
            }
        }
        ...
    }

以上两个问题很希望是我孤陋寡闻,欢迎高手支个招。

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值