小编Ant*_*ony的帖子

如何在特定属性上加入通用的对象列表

 class Person
 {
 public string FirstName { get; set; }
 public string LastName { get; set; }
 }

 List<Person> theList = populate it with a list of Person objects
Run Code Online (Sandbox Code Playgroud)

如何获取一个字符串,其中包含以逗号分隔的列表中对象的所有FirstName.例如:约翰,彼得,杰克

一个基本的解决方案是迭代每个对象,但我确信有一个单行解决方案.

谢谢.

.net c# list

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

ASP.NET:获取图像的高度和宽度

已经问过这个问题的各种风格,但我还没有找到正确的答案.

假设我在文件服务器上有一个.jpg图像,我需要获得它的高度和宽度.我怎么在asp.net中做到这一点?

我已经看到一些答案,建议做这样的事情:

System.Drawing.Image image=System.Drawing.Image.FromFile(PicturePath); 
int ActualWidth=image.Width;
int ActualHeight=image.Height;
image.Dispose();
Run Code Online (Sandbox Code Playgroud)

这可以正常工作,除了不支持在ASP.NET服务中使用System.Drawing命名空间中的类.

那么,如何在ASP.net中获得图像的实际高度和宽度?

asp.net image

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

正则表达式替换:$&和Value(在lambda表达式中)之间有什么区别?

假设我想使用正则表达式在字符串中的每个单词之前添加"test".

string MyText="hello world"
string Pattern = "\w+";
Run Code Online (Sandbox Code Playgroud)

我能做到这一点:

Regex.Replace(MyText, Pattern, "test$&")
Run Code Online (Sandbox Code Playgroud)

或这个:

Regex.Replace(MyText, Pattern, m=>"test"+m.Value)
Run Code Online (Sandbox Code Playgroud)

我会得到相同的结果,那么lambda表达式中$&和Value之间的区别是什么?如果结果没有差异,是否存在性能问题?

c# regex

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

如何使用foreach修改通用列表中的项目?

我有以下通用列表,其中填充了一个字符串列表:

List<string> mylist =new List<string>();  
myList.add("string1");  
myList.add("string2");
Run Code Online (Sandbox Code Playgroud)

假设我想在每个字符串的末尾添加"test",我该如何以简单的方式完成?直觉上,我试过这个编译好了:

myList.ForEach(s => s = s + "test");  
Run Code Online (Sandbox Code Playgroud)

但是,如果我再查看列表的内容,则没有任何改变.我想我可以使用for循环迭代List但我正在寻找一些非常简单的东西,使用ForEach看起来非常整洁....但似乎不起作用.有任何想法吗?

c# foreach generic-list

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

业务对象中的ID是否应该是只读的?

在我看来,业务对象的ID字段应该是只读的(公共get和私有集),因为根据定义,ID永远不会改变(因为它唯一地标识数据库中的记录).

这会在您创建新对象(尚未设置ID)时产生问题,通过存储过程将其保存在数据库中,例如返回新创建的ID,如果读取ID属性,如何将其存储回对象-只要?

例:

Employee employee = new Employee();  
employee.FirstName="John";  
employee.LastName="Smith";  

EmployeeDAL.Save(employee);
Run Code Online (Sandbox Code Playgroud)

如果此属性是只读的,那么Save方法(实际连接到数据库以保存新员工)如何更新Employee对象中的EmployeeId属性(应该是EmployeeId在创建后永远不会更改).

看起来Id应该可以由DAL写入,并且只读给世界其他地方.如果DAL类和Business对象在不同的​​程序集中,您如何实现这一点?

我不想在Employee类中创建一个Save方法,因为这个类应该与数据库无关.

c# business-logic

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

如何在执行更新操作时从触发器获取存储过程名称?

可能重复:
触发器是否可以找到修改数据的存储过程的名称?

我有一个带触发器(更新时)的表.当执行触发器时,我想知道更新有问题的表的存储过程的名称.

sql-server

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

如何使用具有空值的datareader

说我有这个班:

class myclass
{
    public int Field1{ get; set; }
    public int? Field2 { get; set; } //Note Field2 is nullable
 }
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用来自数据库的数据填充通用列表.由于GetSqlInt32实现了INullable,我认为下面的代码可以工作.它没有.如果Field2为null,则会生成错误.

List<myclass> mylist=new List<myclass>();

int Field1_Ordinal = rdr.GetOrdinal("Field1");
int Field2_Ordinal = rdr.GetOrdinal("Field2");

SqlDataReader rdr = cmd.ExecuteReader(); //Execute a stored procedure to retrieve data from the database

while (rdr.Read())
 {
   mylist.Add(new myclass
   {
      Field1 = rdr.GetSqlInt32(Field1_Ordinal).Value,
      Field2 = rdr.GetSqlInt32(Field2_Ordinal).Value  //Error if field2 is null
   });
 }
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它不起作用?

c# null datareader

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

asp.net在Server.Transfer之后如何获取当前页面的路径?

要获取当前页面的网址,我通常会执行以下操作:

string path = Request.Path;
Run Code Online (Sandbox Code Playgroud)

如果我在Server.Transfer之后执行此操作,那么我将获得传输完成的页面路径.如何获取当前页面?

例如:

在Page1.aspx上我执行Server.Transfer("Page2.aspx")
在Page2.aspx上Request.Path返回/Page1.aspx而不是/Page2.aspx

我想得到/Page2.aspx.我怎么才能得到它?

asp.net

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

如何在.net中获取数组的唯一值?

说我有这个数组:MyArray(0)="aaa"MyArray(1)="bbb"MyArray(2)="aaa"

是否有.net功能可以给我独特的价值?我希望这样的东西作为函数的输出:OutputArray(0)="aaa"OutputArray(1)="bbb"

.net arrays unique

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

C#函数返回通用对象/实体

在我的应用程序中,我需要显示由不同存储过程返回的记录列表.每个存储过程返回不同类型的记录(即列数和列类型不同).

我最初的想法是为每种类型的记录创建一个类,并创建一个函数,该函数将执行相应的存储过程并返回List <MyCustomClass>.像这样的东西:

  public class MyCustomClass1
  {
      public int Col1 { get; set; } //In reality the columns are NOT called Col1 and Col1 but have proper names
      public int Col2 { get; set; }
  }

    public static List<MyCustomClass1> GetDataForReport1(int Param1)
    {

        List<MyCustomClass1> output = new List<MyCustomClass1>();

        using (SqlConnection cn = new SqlConnection("MyConnectionString"))
        using (SqlCommand cmd = new SqlCommand("MyProcNameForReport1", cn))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@Param1", SqlDbType.Int).Value = Param1;

            SqlDataReader rdr=cmd.ExecuteReader();

            int Col1_Ordinal = rdr.GetOrdinal("Col1");
            int Col2_Ordinal = rdr.GetOrdinal("Col2");

            while (rdr.Read()) …
Run Code Online (Sandbox Code Playgroud)

c#

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