小编J.P*_*J.P的帖子

删除int数组列表中的重复项

有一个int数组列表,如:

List<int[]> intArrList = new List<int[]>();
intArrList.Add(new int[3] { 0, 0, 0 });
intArrList.Add(new int[5] { 20, 30, 10, 4, 6 });  //this
intArrList.Add(new int[3] { 1, 2, 5 });
intArrList.Add(new int[5] { 20, 30, 10, 4, 6 });  //this
intArrList.Add(new int[3] { 12, 22, 54 });
intArrList.Add(new int[5] { 1, 2, 6, 7, 8 });
intArrList.Add(new int[4] { 0, 0, 0, 0 });
Run Code Online (Sandbox Code Playgroud)

你将如何删除重复(重复我的意思是列表元素具有相同的长度和相同的数字).

在示例中,我将删除元素,{ 20, 30, 10, 4, 6 }因为它被发现两次

我正在考虑按元素大小对列表进行排序,然后将每个元素循环反对休息,但我不知道该怎么做.

其他问题是,如果使用像哈希这样的其他结构会更好......如果是这样如何使用它?

.net c# linq arrays

24
推荐指数
3
解决办法
1094
查看次数

优化在Sql server中快速运行的LINQ查询?

我想计算相关表的行:

MainTable tbl = tblInfo(id);
var count = tbl.Related_Huge_Table_Data.Count();
Run Code Online (Sandbox Code Playgroud)

问题是:这需要太长时间(大约20秒)才能执行,尽管当我在Sql Server中运行此查询时,它执行时间不到一秒钟.如何在linq中优化此查询?我也试过使用存储过程,但没有运气.

这是tblInfo方法:

public MainTable tblInfo(int id)
{
    MyDataContext context = new MyDataContext();
    MainTable mt = (from c in context.MainTables
                    where c.Id == id
                    select c).SingleOrDefault();
    return mt;
}
Run Code Online (Sandbox Code Playgroud)

我使用LinqToSql,类由LinqToSql生成.

c# linq sql-server linq-to-sql

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

与ASP.NET Core中的FromBody混淆

我有以下WEB API方法,并有一个带Angular的SPA模板:

[HttpPost]
public IActionResult Post([FromBody]MyViewModel model)
Run Code Online (Sandbox Code Playgroud)

我想,基于这个主题,没有必要在[FromBody]这里使用,因为我想从消息体中读取值,所以不需要覆盖默认行为,但是,如果我不使用[FromBody],那么模型来自Angular的是null.我真的很困惑,我为什么要使用[FromBody],因为我使用了默认行为?

c# asp.net-core-mvc asp.net-core asp.net-core-webapi angular

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

为什么标签的价值会发生变化?

我知道即使为TextBox禁用ViewState,我们也不会丢失数据,因为它实现了IPostBackDataHandler接口.

<asp:TextBox ID="TextBox1" runat="server" EnableViewState="False"/>
Run Code Online (Sandbox Code Playgroud)

但我的问题是为什么标签也会出现这种情况呢?为什么标签不会丢失它的数据,即使ViewState被禁用,因为标签没有实现IPostBackDataHandler接口?

<asp:Label ID="Label1" runat="server" EnableViewState="False" ViewStateMode="Disabled"/>
Run Code Online (Sandbox Code Playgroud)

TextBox定义:

public class TextBox : WebControl, IPostBackDataHandler,
Run Code Online (Sandbox Code Playgroud)

标签定义:

public class Label : WebControl, ITextControl
Run Code Online (Sandbox Code Playgroud)

我的代码:

<form id="form1" runat="server">
<div>
    <asp:Label ID="Label1" runat="server" EnableViewState="False" ViewStateMode="Disabled" Text="Before click"></asp:Label>
    <asp:TextBox ID="TextBox1" runat="server" EnableViewState="False"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_OnClick"/>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

和代码背后:

protected void Button1_OnClick(object sender, EventArgs e)
{
    Label1.Text = "Changed.";
}
Run Code Online (Sandbox Code Playgroud)

我点击按钮后,我希望看到标签中的"点击之前",但在点击按钮后,我看到标签中的"已更改"文字.

c# asp.net

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

有没有办法让这个查询更快,并在循环外构建where子句?

我有以下代码,(我完全了解参数化查询和SQL注入):

foreach(var item in items)
{
    string query = "select sum(convert(decimal(18,3),tbl.Price)) p, sum(convert(decimal(18,2),tbl.Sale)) s from table1 tbl " +
               $"where tbl.ID = {item .ID}";
    Execute(query);
    //Do stuff with query result
}
Run Code Online (Sandbox Code Playgroud)

问题是我有很多项目,我必须为每个项目执行查询,因为where子句将在每个步骤中完成.我想如果我能够在循环中查询我的查询,我的查询会更快.但我不知道怎么做.有没有办法做到这一点?

c# sql sql-server

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

在FULL OUTER JOIN中选择非空列

请考虑以下表格:

Id     |   Name     |   Family
1      |   name1    |   family1
2      |   name2    |   family2
Run Code Online (Sandbox Code Playgroud)

和:

Id     |   Orderr   |   Countt
1      |   order1   |   17
1      |   order2   |   18
3      |   order3   |   16
Run Code Online (Sandbox Code Playgroud)

以下查询:

select table1.id,table1.name,table1.family,table2.orderr,table2.countt
from table1 FULL OUTER JOIN table2
on table1.id = table2.id
Run Code Online (Sandbox Code Playgroud)

它返回:

Id     |   Name     |   Family    |   Orderr   |   Countt
1      |   name1    |   family1   |   order1   |    17
1      |   name1    |   family1   |   order2   |    18
2      | …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

为什么我不能用ajax将参数发送到action方法?

此代码无需发送参数即可运行:

$(function () {
        $('#Fee').on('focus', function () {
            $.ajax({
                url: '@Url.Action("GetFee")', 
                dataType: "json", 
                type: "POST",
                contentType: 'application/json; charset=utf-8', 
                cache: false, 
                data: { }, 
                success: function (data) {
                    if (data.success) {
                        $('#Fee').val(data.message);
                    }
                }
            });
        });
    });
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将参数发送到GetFeeaction方法,它将不再起作用:

data: { bookname : 'book1' }
Run Code Online (Sandbox Code Playgroud)

我改变了我的动作方法来接受参数:

[HttpPost]
public ActionResult GetFee(string bookname)
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc jquery

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