问题列表 - 第11128页

如何从字典中获取第n个元素?

cipher = new Dictionary<char,int>;
cipher.Add( 'a', 324 );
cipher.Add( 'b', 553 );
cipher.Add( 'c', 915 );
Run Code Online (Sandbox Code Playgroud)

如何获得第二个元素?例如,我想要像:

KeyValuePair pair = cipher[1]
Run Code Online (Sandbox Code Playgroud)

哪一对包含 ( 'b', 553 )


基于合作社使用List的建议,事情正在发挥作用:

List<KeyValuePair<char, int>> cipher = new List<KeyValuePair<char, int>>();
cipher.Add( new KeyValuePair<char, int>( 'a', 324 ) );
cipher.Add( new KeyValuePair<char, int>( 'b', 553 ) );
cipher.Add( new KeyValuePair<char, int>( 'c', 915 ) );

KeyValuePair<char, int> pair = cipher[ 1 ];
Run Code Online (Sandbox Code Playgroud)

假设我是正确的,项目按照添加的顺序保留在列表中,我相信我可以使用a List而不是SortedList建议的.

c# dictionary

34
推荐指数
4
解决办法
7万
查看次数

使用web.config禁止用户代理

是否可以直接从web.config禁止某些用户代理?某些机器人似乎不遵循robots.txt,并且为了避免无意义的服务器负载(以及日志文件垃圾邮件),我想阻止某些类别的请求(特别是基于用户代理或非常可能是IP地址)继续进行.

如果您知道是否可以防止此类请求完全记录到IIS的日志文件中,则可以获得奖励积分.(即if-request-match,转发到/ dev/null,如果你明白我的意思).

win2003的解决方案更可取,但这是一个反复出现的问题 - 如果IIS7有一个干净的解决方案而不是IIS6,我很乐意知道它.

编辑: 抱歉'回合之前的不完整问题,我有标签+意外输入.

asp.net iis

8
推荐指数
1
解决办法
5123
查看次数

C++语法上下文的任何部分都是敏感的吗?

可能重复:
C++是无上下文还是上下文相关?

对于熟悉编译器的人来说,这可能是一个愚蠢的问题,但老实说我对答案一无所知.

C++语法是上下文敏感的吗?换句话说,C++语法是否无法用无上下文语法表达?

很明显,C++ 使用常规解析工具解析的,并且解析并不是特别无效(!),但我确实记得读过这个(我不记得在哪里),我想我会在传播之前直接了解社区谎言......也许C++的一个子集是CS?也许新的规格?任何帮助表示赞赏.

编辑:感谢所有的回复.但是,为了完整起见,编译的哪个部分处理歧义?CFG是一种语法,在规则的左侧只有一个非终端符号(例如A->zC),CSG是在左侧有一个终端(加上一个非终端)的语法(aAv->QT),其中大写字母是非终结符,小写是终结符.在解析 C++源代码的语法中是否有像后者那样的表示?

c++ parsing

21
推荐指数
0
解决办法
4726
查看次数

Visual Studio调试器 - 自动变量分配

我正在开发一个多开发人员项目,正在开发的应用程序是通过启动器应用程序启动的,该启动器应用程序传递用户登录的参数,它们的位置等.现在当我调试应用程序时,我在代码上设置了一个断点.解析输入参数,我分配用户名变量我的用户名等.

我可以对这些值进行硬编码,但是:

  • 我相信这是不好的做法.
  • 我担心该文件将被检入我们的VCS并产生灾难性的连锁反应.
  • 多个开发人员正在研究该项目,因此对我的姓名,位置分配等进行硬编码并不是一个真正的选择.
  • 我无法将文件设置为只读,因为它处于活动开发状态,我不断需要获取所述文件的更新版本.

我的问题是:

  • 是否有内置方式或自动扩展,以在调试模式下为变量赋值.现在我突出显示变量并输入我的文本,这可以自动化吗?

提前致谢

debugging visual-studio-2008 visual-studio

6
推荐指数
1
解决办法
316
查看次数

生成引用自己的类

有没有办法让这两个类化为一体?

class Tag1{
  public Tag1 Parent{get;set;}
}

class Tag2{
  public Tag2 Parent{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

所以我会:

class Tag1 : Tag{}

class Tag2 : Tag{}
Run Code Online (Sandbox Code Playgroud)

似乎没有,但可能我错过了一些全球性的东西.

感谢Jon,我结束了以下解决方案:

class Tag1 : Tag<T> {
   public T Parent {get;set;}

  public T AddNew(){
      return new T(){Parent = (T)this;} // This works
  }
}
Run Code Online (Sandbox Code Playgroud)

c# generics

1
推荐指数
1
解决办法
169
查看次数

协议开发指南

我们有如下设计,我想获得以下错误场景的意见或协议指南.

   Layer1                                                 
---------------                                                
 |      ^    ^                                          
 | (1)  |(4) |(6)
 v      |    |                                           Remote entity
----------------                                        ---------------  

   Layer0-----------------(2)------------------------------->Layer0
   Layer0<----------------(3)--------------------------------Layer0
   Layer0<----------------(5)--------------------------------Layer0


1. New session request to remote entity.
2. Establish link + data(session request)
3. Link Establishment ongoing 
4. Link Establishment pending
5. Link Established + data (session accepted)
6. session accepted.
Run Code Online (Sandbox Code Playgroud)

如果layer1在步骤4和6之间决定它不需要远程实体服务,即接收事件4并且由于某些错误而尚未接收事件6.

1)是否应该等待事件6发生并启动会话释放或
2)Layer1应该指示第0层
立即终止连接建立过程.

哪种方法正确?

(1)的问题是,即使我们知道由于错误我们将要终止会话,我们需要在event6进入之前处理其他事件.

protocols

3
推荐指数
1
解决办法
480
查看次数

.Net - 什么时候是List <T> .ForEach优先于标准的foreach循环?

通用列表类有一个.ForEach(Action<T> action)方法.现在我已经完成了一些关于它们如何表现的简单时间,似乎通用ForEach是较差的表演者.(Snippet Compiler Friendly)代码如下 -

public static class timer{
    public static long foreachloop = 0;
    public static long Gforeachloop = 0;}

public class something{
    public List<string> myStrings = new List<string>();

    public something()
    {
        for(int i = 1; i<=5000000;i++)
        {
            myStrings.Add(i.ToString());
        }
    }}

public class cls1{
    private static List<string> Strings = new List<string>();
    private static List<string> OtherStrings = new List<string>();

    public static void RunSnippet()
    {
        something s = new something();

        Stopwatch watch = new Stopwatch();
        watch.Start();
        foreach(string …
Run Code Online (Sandbox Code Playgroud)

c# generics performance generic-list

3
推荐指数
2
解决办法
787
查看次数

记录中的F#Lambdas

我有一个简单的类型:

type p =
    {
        desc : string;
        desc2: string
    }
Run Code Online (Sandbox Code Playgroud)

如何将一个返回字符串而不是正确字符串的匿名函数传递给值?以下内容无法编译.谢谢

let oo =
    {
        desc = "ok";
        desc2 = (fun () -> "")
    }
Run Code Online (Sandbox Code Playgroud)

f#

1
推荐指数
1
解决办法
245
查看次数

未列出的保留字?

我今天在一些PHP代码中遇到了一个非常奇怪的行为.我们有一个处理文件的类.它是这样的:

class AFile {

 //usual constructor, set and get functions, etc.
 //...

  public function save() {
    //do some validation
    //...

    if($this->upload()) { //save the file to disk
      $this->update_db(); //never reached this line
    }
  }

  private function upload() {
     //save the file to disk
     //...
     return ($success) ? true : false;
  }
}
Run Code Online (Sandbox Code Playgroud)

它看起来很正常,但是$ this-> upload()函数永远不会返回NULL.我们检查了正确的函数是否正在运行.我们在返回之前回复了它的返回值.我们只尝试返回一个真值或一个字符串.一切都正常.但$ this-> upload仍然评估为NULL.此外,日志中没有任何内容,ERROR_ALL已打开.

在愤怒中,我们将函数名称更改为foo_upload.突然间一切都奏效了."upload"不在PHP保留字列表中.任何人都有任何想法为什么名为"上传"的类函数会失败?

php return-value

5
推荐指数
1
解决办法
202
查看次数

实体框架中的新对象 - 主键问题

在我的数据库中,我有一个Vehicle带主键的表.我正在使用创建一个新Vehicle对象

new Vehicle();
Run Code Online (Sandbox Code Playgroud)

并适当更新车辆的属性.

当我尝试做一个

genesisContext.Vehicles.AddObject(vehicle);
Run Code Online (Sandbox Code Playgroud)

第一次成功更新表并且主键为0.在随后的所有情况下,我都会收到错误消息,指出密钥不是唯一的

违反PRIMARY KEY约束'VEHICLES_PK'.无法在对象'dbo.Vehicles'中插入重复键.\ r \n语句已终止.

(可能是因为EF设置的主键仍为0)

我的理解是,EF智能地计算出主键,为什么会发生这种情况?

sql-server entity-framework

4
推荐指数
1
解决办法
5540
查看次数