小编asm*_*smo的帖子

MySQL朋友表

我有一个MySQL数据库,我在其中存储有关每个用户的数据.

我想为每个用户添加一个朋友列表.我应该为数据库中的每个用户创建一个朋友表,还是有更好的方法?

mysql database-design data-modeling

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

确定整数列表中的第一个可用值

我得到了一个简单的整数列表.

List<int> myInts = new List<int>();

myInts.Add(0);
myInts.Add(1);
myInts.Add(4);
myInts.Add(6);
myInts.Add(24);
Run Code Online (Sandbox Code Playgroud)

我的目标是从List中获取第一个未使用的(可用)值.

(集合中尚未出现的第一个正值)

在这种情况下,答案是2.

这是我目前的代码:

int GetFirstFreeInt()
{
    for (int i = 0; i < int.MaxValue; ++i)
    {
        if(!myInts.Contains(i))
            return i;
    }

    throw new InvalidOperationException("All integers are already used.");
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?也许使用LINQ?你会怎么做?

当然,我在这里使用了简单但我的问题适用于任何类型.

c# linq collections

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

如何使用LINQ按组合并/求和记录?

例如,如何GroupId使用LINQ 对以下记录进行分组,并将每个组中的所有其他列相加?(从而将每个组中的所有行合并为一个)

var list = new List<Foo>()
{ 
    new Foo() { GroupId = 0, ValueA = 10, ValueB = 100 },
    new Foo() { GroupId = 1, ValueA = 30, ValueB = 700 },
    new Foo() { GroupId = 1, ValueA = 40, ValueB = 500 },
    new Foo() { GroupId = 2, ValueA = 80, ValueB = 300 },
    new Foo() { GroupId = 2, ValueA = 20, ValueB = 200 },
    new Foo() { GroupId = …
Run Code Online (Sandbox Code Playgroud)

c# linq

11
推荐指数
2
解决办法
8821
查看次数

在Postback之后,DataList的ASP.NET/DataItem为null

在我的ASP.NET表单中回发(单击一个按钮)后,我的表单的所有DataItem都为null.为什么?即使在回发后,我该怎么做才能检索DataList的内容?

protected void buttonAddRecord_Click(object sender, EventArgs e)
    {
        foreach (DataListItem item in listFields.Items)
        {
            // item.DataItem == null  WTF?
        }
    }

protected void Page_Load(object sender, EventArgs e)
    {
        BindFields();
    }

private void BindFields()
    {
        object setting = MySettings.GetSetting();

        if (!Null.IsNull(setting))
        {
            listFields.DataSource =     
                DataProvider.GetData(int.Parse(setting.ToString()));
            listFields.DataBind();
        }

        listFields.Visible = listFields.Items.Count > 0;
        emptyMessage.Visible = listFields.Items.Count == 0;
    }
Run Code Online (Sandbox Code Playgroud)

asp.net null postback datalist dataitem

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

字典,其中键是一对整数

我需要使用一个Dictionary,其中TKey是一对int.

我想使用KeyValuePair作为我的键的类型,我想知道这是否是最好的方法.

我也很想知道Dictionary是否会为具有相同整数和原因的两个不同KeyValuePair对象创建单独的条目.

例如:

var myDictionary = new Dictionary<KeyValuePair<int,int>, string>();
myDictionary.Add(new KeyValuePair<int,int>(3, 3), "FirstItem");
myDictionary.Add(new KeyValuePair<int,int>(3, 3), "SecondItem");
// does the dictionary allow this?
Run Code Online (Sandbox Code Playgroud)

.net c# collections dictionary

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

为什么人们在事件队列上运行Java GUI

在Java中,要创建和显示新的JFrame,我只需这样做:

public static void main(String[] args) {
   new MyCustomFrameClass().setVisible(true);
}
Run Code Online (Sandbox Code Playgroud)

但是,我见过很多人这样做:

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            new MyCustomFrameClass().setVisible(true);
       }
    });
}
Run Code Online (Sandbox Code Playgroud)

为什么?有什么好处吗?

java swing multithreading jframe eventqueue

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

C#LINQ与foreach迭代器块的性能

1)这些生成相同的字节代码吗?

2)如果没有,在某些情况下使用一个是否有任何收益?

// LINQ select statement
return from item in collection
    select item.Property;

// foreach in an iterator block
foreach (item in collection)
    yield return item.Property;
Run Code Online (Sandbox Code Playgroud)

linq foreach select iterator

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

限制分号以防止SQL注入?

我已经看到SQL注入字符串通常是这样构造的:

' ; DROP DATABASE db  --
Run Code Online (Sandbox Code Playgroud)

因此,如果我不允许在我的应用程序输入中使用分号,这是否100%防止任何SQL注入攻击?

t-sql security sql-injection

9
推荐指数
3
解决办法
5794
查看次数

如何确定集合中最早/最新的DateTime?

问题1:在DateTime对象的集合中,如何确定哪一个是最早/最新的?

问题2:在对象集合中,如何确定哪个对象具有最早/最新的DateTime属性?

例如:

class VideoGame
{
    DateTime ReleaseDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

哪个VideoGame会在第一个/最后一个发布?

var allGames = new List<VideoGame>();
allGames.Add( new VideoGame() { ReleaseDate = new DateTime(2010, 10, 4)} );
allGames.Add( new VideoGame() { ReleaseDate = new DateTime(2012, 7, 14)} );
allGames.Add( new VideoGame() { ReleaseDate = new DateTime(2014, 5, 26)} );
Run Code Online (Sandbox Code Playgroud)

c# datetime

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

使用yield return的强类型方法接口

我真的很高兴能够在C#中做到这一点:

IEnumerable GetThePizzas()
{
    yield return new NewYorkStylePizza();
    yield return new SicilianPizza();
    yield return new GreekPizza();
    yield return new ChicagoStylePizza();
    yield return new HawaiianPizza();
}
Run Code Online (Sandbox Code Playgroud)

而在Java中,我会这样做:

Collection<Pizza> getThePizzas()
{
    ArrayList<Pizza> pizzas = new ArrayList<Pizza>();

    pizzas.add(new NewYorkStylePizza());
    pizzas.add(new SicilianPizza());
    pizzas.add(new GreekPizza());
    pizzas.add(new ChicagoStylePizza());
    pizzas.add(new HawaiianPizza());

    return pizzas;
}
Run Code Online (Sandbox Code Playgroud)

请注意,Java代码告诉返回的类型(Pizza实例).C#代码没有.这让我很烦恼,尤其是在其他程序员无法访问源代码的情况下.有没有办法来解决这个问题?

更新:我的问题是我使用"System.Collections"而不是"System.Collections.Generic",因此我使用的是非通用版本的IEnumerable.

c# ienumerable

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