小编fub*_*ubo的帖子

CompareTo()方法不起作用

我有一个名为Person的类,它实现了IComparable<int>通用接口.我有一个包含Person对象的通用列表,我将我的列表分配给一个数组,我正在对列表进行排序,但我正在采取以下错误.

错误:{"无法比较数组中的两个元素."}

这是我的Person类

public class Person : IComparable<int> 
    {
        public int Age { get; set; }

        public int CompareTo(int other)
        {
            return Age.CompareTo(other);
        }
    }
Run Code Online (Sandbox Code Playgroud)

和这个程序cs

class Program
{
    static void Main(string[] args)
    {
        List<Person> list2 = new List<Person>();

        list2.Add(new Person() { Age = 80 });
        list2.Add(new Person() { Age = 45 });
        list2.Add(new Person() { Age = 3 });
        list2.Add(new Person() { Age = 77 });
        list2.Add(new Person() { Age = 45 });

        Person[] array = list2.ToArray(); …
Run Code Online (Sandbox Code Playgroud)

c# sorting icomparer

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

PostBack期间GridView.DataSource为null

我想在我的应用程序中从每个Gridview实现打印/下载csv.那些通过Datasources或直接获取数据

gvSample.DataSource = Data;
gvSample.DataBind();
Run Code Online (Sandbox Code Playgroud)

现在我的第一种方法是将下载按钮设置为页脚模板并在那里处理下载

<asp:GridView ID="gvSample" runat="server">
 <PagerTemplate>
  <asp:ImageButton  ImageUrl="~/download.gif"  OnClick="dl_Click" runat="server" ID="dl"/>
 </PagerTemplate>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)

protected void dl_Click(object sender, ImageClickEventArgs e)
{
    GridView gv = (GridView)this.Parent.Parent.Parent.Parent;
    string csv = ToCSV(gv.DataSource); //gv.DataSource is null, DatasourceID aswell
    Response.ContentType = "application/csv";
    Response.AddHeader("content-disposition", "attachment; filename=file.csv");
    Response.Write(csv);
    Response.End();           
}
Run Code Online (Sandbox Code Playgroud)

但我无法访问数据.

c# asp.net postback gridview datasource

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

在MySQL中查找控制字符

在MySQL中查找字符串中控制字符的最佳方法是什么?我有一个表,想要获取包含控制字符的所有记录.就像是

SELECT * FROM Customer WHERE Name = *ControlCharFilter*;
Run Code Online (Sandbox Code Playgroud)

在C#中它会是

Customer.Where(x => x.Name.Any(y => char.IsControl(y));
Run Code Online (Sandbox Code Playgroud)

mysql string control-characters

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

调用另一个方法时调用方法

这可能是一个愚蠢的问题,但这里有.

我有以下问题:

public class MyBaseClass
{
    public void SomethingAwesome()
    {
        //Awesome stuff happens here, but only when the Something() method
        //is called in the other classes.
    }
}

public class SomeClass : MyBaseClass
{
    public void Something()
    {
        //Something happens here
    }
}

public class SomeOtherClass : MyBaseClass
{
    public void Something()
    {
        //Something else happens here
    }
}
Run Code Online (Sandbox Code Playgroud)

MyBaseClass有一个方法,当从继承它的类中调用Something()方法时需要调用该方法.

这背后的想法是,我需要记录这个方法被调用时出于很多无聊的公司原因.我宁愿有一个基类,它可以在调用方法时自动进行审计,而不是让开发人员自己调用该方法.

可以实现这样的事情吗?如果是这样,怎么样?

我已经考虑过部分方法,但这需要具有相同名称的类,这在这种情况下是不可能的.

c# methods partial-methods class

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

如何实现实现另一个接口的通用接口?

我已经有这个问题很长一段时间了.我有一个界面,比如说ITransaction.现在我需要创建一个名为的接口IVolatileTransaction<T>,它必须实现ITransaction,但T也必须是一个ITransaction.

public interface IVolatileTransaction<T> : ITransaction
public interface IVolatileTransaction<T> where T : ITransaction
Run Code Online (Sandbox Code Playgroud)

问题是,我需要两者.有任何想法吗?

c# generics interface

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

Task.Factory.StartNew传递返回值

我得到以下方法,我想传递dosleep方法的返回值:

static void Main(string[] args)
{
    var t1 = Task.Factory.StartNew(() => dosleep(2000));
    var t2 = Task.Factory.StartNew(() => dosleep(1000));
    Task.WaitAll(t1,t2);
    Console.WriteLine("All Done in {0} milliseconds!"); //t1+t2 here!!
}

public static int dosleep(int Milliseconds)
{
    System.Threading.Thread.Sleep(Milliseconds);
    Console.WriteLine("Task finished");
    return Milliseconds;
}
Run Code Online (Sandbox Code Playgroud)

c# task

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

使用{...}和new来实例化C#中的匿名类型

我最近在Smarterer尝试了C#的技能测试.

我遇到一个问题,说明以下哪一项可用于在C#中创建一个匿名类型(类似的东西).

我选择了"没有这些"(我不记得其他选项,因为基于时间的测试只有10秒).

一旦我给出答案,它说这{...}是正确的答案.

所以我想这样的事情:

var someVariableName = new {...}; 创建匿名类型.

我很惊讶地看到这一点并且有点笨拙,但却找不到类似的东西.

问题:在使用{...}关键字或运算符实例化时,是否有任何方法可以创建匿名类型而不声明其类型?或问题的正确答案是不是"正确"?

dynamic如果我没有错,可以使用关键字来完成.

c# variables using anonymous-types

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

C#实例化并将值添加到模型中的嵌套列表

我有一个单元测试课,我在工厂做一些测试.在这个单元测试中,我模拟了一些数据.在模拟数据中,我在NumberModel中有NumberModel(父模型),我有一个名为ReferenceModel的嵌套模型列表.我已经在同一行中为它们添加值时实例化了许多列表,但是当我尝试用我的嵌套模型列表执行此操作时,我发现我不能.

这是单元测试类的片段,我在这里模拟我的数据.

_numberModel = new NumberModel()
{
   value1 = 1,
   value2 = x,
   referenceList = new List<ReferenceModel> { ID = 55, NumberType = Mean } < -- These show undefined
};
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?我是否需要深入查看父模型中的嵌套列表,以便定义嵌套的模型列表?

c# nested list nested-lists

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

如何获取List <T>的前一个元素

我有一个像这样的清单

var myList = new List<object> { 
    new { Day = "Sunday", ID = 15 },
    new { Day = "Monday", ID = 20 }, 
    new { Day = "Tuesday", ID = 80 } 
};
Run Code Online (Sandbox Code Playgroud)

现在我想获得给定ID的前一天.例如80导致星期一和星期日应该是20的结果.列表按ID排序!

我有一个简单的方法来确定日值吗?理想的是一个linq解决方案.

c# linq list

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

检查更新结果是否失败

每次我点击更改密码时,它都会更改密码,但会提示无效组合

这是我的代码

using (SqlCommand cmd = new SqlCommand("UPDATE LoginReport SET PassLogin = @NewPassLogin WHERE UserLogin = @UserLogin AND PassLogin = @PassLogin ", conn))
{
    conn.Open();

    cmd.Parameters.AddWithValue("@UserLogin", txtUser.Text);
    cmd.Parameters.AddWithValue("@PassLogin", txtOldPass.Text);
    cmd.Parameters.AddWithValue("@NewPassLogin", txtNewPass.Text);

    SqlDataReader Dr = cmd.ExecuteReader();
    if (Dr.HasRows == true)
    {
        MessageBox.Show("Sucessfully Updated Account");
    }
    else
    {
        MessageBox.Show("Invalid Combination");
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么检查失败?

c# sql sql-server

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