小编slo*_*oth的帖子

为什么CompareTo简称以这种方式实现?

请考虑以下代码:

namespace ConsoleApplication1 {
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(100.CompareTo(200)); // prints -1
            Console.WriteLine(((decimal)100).CompareTo((decimal)200)); // prints -1
            Console.WriteLine(((short)100).CompareTo((short)200)); // prints -100
            Console.WriteLine(((float)100).CompareTo((float)200)); // prints -1
            Console.ReadKey();
        }
    } 
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,Int16上的CompareTo方法返回除-1,0和1以外的值有什么特殊原因吗?

ILSpy显示它以这种方式实现

public int CompareTo(short value)
{
    return (int)(this - value);
}
Run Code Online (Sandbox Code Playgroud)

而这种方法是以这种方式在Int32上实现的

public int CompareTo(int value)
{
    if (this < value)
    {
        return -1;
    }
    if (this > value)
    {
        return 1;
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

.net compareto design-decisions

5
推荐指数
2
解决办法
161
查看次数

什么是Python的最小/最大的C#等效项

以下Python的最小/最大代码的C#等效项是什么:

pairs = [ (2,"dog"), (1, "cat"), (3, "dragon"), (1, "tiger") ]

# Returns the PAIR (not the number) that minimizes on pair[0]
min_pair = min(pairs, key=lambda pair:pair[0])

# this will return (1, 'cat'), NOT 1
Run Code Online (Sandbox Code Playgroud)

看来C#的Enumerable.Min非常接近。但是根据其MSDN文档,它总是返回最小化的VALUE(而不是原始对象)。我有什么想念的吗?

编辑


请注意 -我不倾向于首先通过排序来实现,因为排序(O(nlogn))在计算上比找到最小值(O(n))重。

另请注意 -词典也不是理想的方法。它不能处理键重复的情况-(1,“ cat”)和(1,“ tiger”)。

更重要的是,字典无法处理要处理的项目是复杂类的情况。例如,以年龄为关键字,找到一系列动物物体的最小值:

class Animal
{
  public string name;
  public int age;
}
Run Code Online (Sandbox Code Playgroud)

c# python

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

如何阻止任何滑块将哈希标记添加到URL

任何滑块都会添加像#&panel1-1网址末尾的哈希标记.

我试过hashtags:false但它不起作用.

有没有其他方法可以阻止它生成这些主题标签?

javascript jquery jquery-plugins anythingslider

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

来自VB.net中属性的Xml节点值

我喜欢XML

<Categories>
    <category name="a">
        <SubCategory>1</SubCategory>
        <SubCategoryName>name1</SubCategoryName>
    </category>
    <category name="b">
        <SubCategory>2</SubCategory>
        <SubCategoryName>name2</SubCategoryName>
    </category>
</Categories>
Run Code Online (Sandbox Code Playgroud)

我如何获得的值<SubCategoryName><category name="a">

xml vb.net xmlnode xml-attribute

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

使用LINQ获取组的平均值

我试图根据List中每个项目的特定值将我的List分成不同的组,然后找到这些组中另一个值的平均值.

为了更好地说,我有一个学生名单:

List<Student> students = new List<Student> {
    new Student { Name="Bob", Level=Level.Sophomore, GPA=3.2f },
    new Student { Name="Cathy", Level=Level.Freshman, GPA=3.6f },
    new Student { Name="James", Level=Level.Senior, GPA=3.8f },
    new Student { Name="Jessica", Level=Level.Senior, GPA=3.7f },
    new Student { Name="Derek", Level=Level.Junior, GPA=2.8f },
    new Student { Name="Sam", Level=Level.Junior, GPA=3.1f }
};
Run Code Online (Sandbox Code Playgroud)

我想按照他们的班级对他们进行分组,因此他们将分为新生,二年级,初中和高年级.然后我希望能够获得这些组的平均GPA.

因此,为这些学生设置的可能结果将是:

Senior: 3.7
Junior: 2.9
Sophomore: 3.2
Freshman : 3.6
Run Code Online (Sandbox Code Playgroud)

我不太确定如何获得这个结果.我尝试了类似的东西,students.GroupBy(x => x.Level).Average();但它不起作用.

对此的任何想法将不胜感激.谢谢!

c# linq

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

的Joomla! - 如何为用户注册添加额外信息?

我正在为我的网站运行Joomla 2.5.1.

对于用户注册,只有名称,用户名,密码,确认密码,电子邮件地址和确认电子邮件地址.

我可以转到'用户配置文件'并启用地址,国家等字段.
但是,我想添加其他信息,如公司名称等.

我可以知道如何做到这一点?

joomla registration

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

最好不要用完列表索引

假设我有2D列表,我想检查上一个/下一个元素是否等于某个东西.什么是确保我不会进入最好的方式list[-1][-1]还是list[len + 1][len + 1]

这是我正在尝试做的一个例子:

if list[y + 1][x] == value and list[y - 1][x] == value:
    do something
elif list[y][x + 1] == value and list[y][x - 1] == value:
    do something else
... # end so on
Run Code Online (Sandbox Code Playgroud)

除了做以下事情,我看不到任何其他选项:

if y - 1 > 0 and y + 1 < len(list) and x - 1 > 0 and x + 1 < len(list[y]):
Run Code Online (Sandbox Code Playgroud)

哪个看起来不对......

python

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

Pygame TypeError:“int”对象不可调用

这几行 python 3.2 代码使用最新的 pygame 模块来移动图像。它与这个例子有关:http : //www.pygame.org/docs/tut/MoveIt.html

这是我的代码:

import pygame
import sys 

pygame.init()
screen = pygame.display.set_mode((600,400))
bg = pygame.image.load('bg.jpg')
player = pygame.image.load('player.jpg')
pos = player.get_rect()

while True:
    for i in pygame.event.get():
       if i.type() == pygame.QUIT:
            sys.exit()
    screen.blit(bg,(0,0))
    screen.blit(player,(i,i))
    pygame.display.update()
Run Code Online (Sandbox Code Playgroud)

这是我运行时遇到的错误:

回溯(最近一次通话):
文件“C:/Users/Grounds Keeper Willy/Desktop/Python Code/test.py”,第 12 行,在
if i.type() == pygame.QUIT:
TypeError: 'int'对象不可调用

我发现了类似的问题,但答案表明问题也使用函数名作为变量,这不是我正在做的。我似乎无法弄清楚这里出了什么问题。

pygame typeerror python-3.x

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

如何在Pygame中从用户获取文本输入?

如何从用户进行pygame打印输入:

我试图让用户键入一些东西,pygame将其打印在屏幕上.

这是我目前的计划:

import pygame, pygame.font, pygame.event, pygame.draw, string
from pygame.locals import *

def get_key():
  while 1:
    event = pygame.event.poll()
    if event.type == KEYDOWN:
      return event.key
    else:
      pass

def display_box(screen, message):
  "Print a message in a box in the middle of the screen"
  fontobject = pygame.font.Font(None,18)
  pygame.draw.rect(screen, (0,0,0),
                   ((screen.get_width() / 2) - 100,
                    (screen.get_height() / 2) - 10,
                    200,20), 0)
  pygame.draw.rect(screen, (255,255,255),
                   ((screen.get_width() / 2) - 102,
                    (screen.get_height() / 2) - 12,
                    204,24), 1)
  if len(message) != 0:
    screen.blit(fontobject.render(message, 1, …
Run Code Online (Sandbox Code Playgroud)

python pygame

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

在 pygame 中每 x (milli) 秒做一些事情

我正在学习 Python 和 Pygame,我制作的第一件事是一个简单的 Snake 游戏。我试图让蛇每 0.25 秒移动一次。这是我循环的代码部分:

while True:
    check_for_quit()

    clear_screen()

    draw_snake()
    draw_food()

    check_for_direction_change()

    move_snake() #How do I make it so that this loop runs at normal speed, but move_snake() only executes once every 0.25 seconds?

    pygame.display.update()
Run Code Online (Sandbox Code Playgroud)

我希望所有其他函数都能正常运行,但 move_snake() 每 0.25 秒只发生一次。我查了一下,找到了一些答案,但对于制作第一个 Python 脚本的人来说,它们似乎都太复杂了。

是否有可能实际获得我的代码应该是什么样子的示例,而不仅仅是告诉我需要使用哪个函数?谢谢!

python pygame function milliseconds seconds

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