有一个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 }因为它被发现两次
我正在考虑按元素大小对列表进行排序,然后将每个元素循环反对休息,但我不知道该怎么做.
其他问题是,如果使用像哈希这样的其他结构会更好......如果是这样如何使用它?
我想计算相关表的行:
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生成.
我有以下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
我知道即使为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)
我点击按钮后,我希望看到标签中的"点击之前",但在点击按钮后,我看到标签中的"已更改"文字.
我有以下代码,(我完全了解参数化查询和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子句将在每个步骤中完成.我想如果我能够在循环中查询我的查询,我的查询会更快.但我不知道怎么做.有没有办法做到这一点?
请考虑以下表格:
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) 此代码无需发送参数即可运行:
$(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# ×6
sql-server ×3
linq ×2
sql ×2
.net ×1
angular ×1
arrays ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
jquery ×1
linq-to-sql ×1