如何使用linq从列表中删除项目?
我有一个项目列表和每个项目自己有一个其他项目的列表现在我想要查询,如果其他项目包含任何传递列表的项目,所以应删除主项目.请检查代码以获得更清晰.
public Class BaseItems
{
public int ID { get; set; }
public List<IAppointment> Appointmerts { get; set; }
}
Public DeleteApp(List<IAppointment> appointmentsToCheck)
{
List<BaseItems> _lstBase ; // is having list of appointments
//now I want to remove all items from _lstBase which _lstBase.Appointmerts contains
any item of appointmentsToCheck (appointmentsToCheck item and BaseItems.Appointmerts
item is having a same reference)
//_lstBase.RemoveAll(a => a.Appointmerts.Contains( //any item from appointmentsToCheck));
}
Run Code Online (Sandbox Code Playgroud) Response.End();在asp.net中执行方法时,它抛出ThreadAbortException我在catch块中处理的内容,在内部catch块结束后我想执行一些其他代码,但它直接跳转到外部catch块.这是因为响应已经结束而且.net框架不执行任何进一步的代码?
protected void btn_click(object sender, EventArgs e)
{
try
{
string fileToDownload = MapPath(@"~\Sample.txt");
string fileToRead = MapPath(@"~\FileNotExist.txt");
try
{
//Section 1
try
{
// try to read the file which does not exist to raise the exception
StreamReader ss = new StreamReader(fileToRead);
}
catch (IOException IoEx)
{
// Just for sample exception
}
// Section 2 code block still execute because exception handled by upper try catch block
//Section 2
Response.Clear();
Response.ClearHeaders();
Response.AddHeader("Content-Disposition", "attachment;filename=SampleTemplate.txt");
Response.ContentType = …Run Code Online (Sandbox Code Playgroud) 我正在维护一个Web应用程序,这个网站也有错误日志功能.
我的客户偶尔在网站上遇到一些问题,该问题也记录在错误日志文件中,但它只显示方法调用层次结构,其中堆栈跟踪中发生异常.
当我在Dev环境堆栈中显式引发异常时,异常的跟踪显示方法调用层次结构及其实际异常发生的行号.
我知道在生产中我们只部署DLL,这就是为什么我们没有在日志文件中获取错误行号.
任何人都有任何想法如何只在我们部署DLL(程序集)时才能获得错误行号?
什么是c#中Visual Basic'vbNullChar'的等价物?
我想在C#中复制这个VB语句
Dim sVersion As String
sVersion = New String(vbNullChar, 255)
Run Code Online (Sandbox Code Playgroud) 这是我的代码,其中我的FileUpload控件在更新面板之外但是当我点击更新面板下的保存按钮时,给出fileUploadAttachment.HasFile = false
ASPX
<asp:Literal runat="server" ID="lblAttachment" Text="Attachment:" /><asp:FileUpload
ID="fileUploadAttachment" runat="server" Width="488px" />
<asp:UpdatePanel ID="updatePanelAction" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Button ID="btnSave" runat="server" Text="Save" OnClick="btnSave_Click" ValidationGroup="Save" />
<asp:Button ID="btnTest" runat="server" Text="Test" Enabled="false" OnClick="btnTest_Click" />
<asp:Button ID="btnConfirmTest" runat="server" Text="Confirm Test" Enabled="false"
OnClick="btnConfirmTest_Click" />
<asp:Button ID="btnSend" runat="server" Text="Send" Enabled="false" OnClick="btnSend_Click" />
</ContentTemplate>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
CS
protected void btnSave_Click(object sender, EventArgs e)
{
CampaignBAL campaignBAL;
string tmpFileName = "";
User user;
Campaign campaignDetail = new Campaign();
int? campaignID;
if (fileUploadAttachment.HasFile) // return always false
{
tmpFileName …Run Code Online (Sandbox Code Playgroud) 我在我的asp.net MVC3应用程序中实现了自动完成文本框,但我无法在搜索期间在文本框中显示加载图像.我的代码是
使用Javascript
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function () {
$("#txtPONO").autocomplete({
source: "/Transection/GetPONO",
minLength: 2,
select: function (event, ui) {
$("#hdnPurContID").val(ui.item.id);
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
视图
<div style="float: left; padding: 9px 5px 5px 5px; width: 80px; vertical-align: middle"
class="fieldHead">
Enter @Html.LabelFor(l => l.PurchaseContract.AOPLPONO)
</div>
<div style="float: left; width: 200px; padding: 5px 0px 5px 0px;">
@Html.TextBoxFor(m => m.PurchaseContract.AOPLPONO, new { @id = "txtPONO", @class = "textbox", @style = "width:100%" })
</div>
<div …Run Code Online (Sandbox Code Playgroud) 我有一个包含许多项目的枚举,我想在VB.NET的select case语句中实现,就像我们在c#.net中一样.
就像在C#.net中一样,我们只需输入switch然后点击Tab键并输入enum变量名,然后点击输入键在case语句中自动枚举的所有enum项.我在VB.net中寻找相同的方式,所以我不需要手动输入所有的情况.
在vb.net中有可能吗?
我在 Web API 实现方面很新,我创建了一个 Web API 服务以将它与ASP.net web form应用程序以及一些使用HttpClient对象的独立应用程序(C# 控制台/Windows 应用程序)一起使用。
我已经在 web api 中实现了一个基本的 JWT 访问令牌身份验证和过期时间限制,这个身份验证技术工作正常,直到令牌未过期,当令牌过期时 web api 不接受请求,因为令牌已过期!根据身份验证实现,这很好,但我想在 web api 中实现刷新令牌逻辑,以便令牌可以更新/引用,并且客户端应该能够使用 web api 资源。
我搜索了很多,但无法找到刷新令牌逻辑的正确实现。如果有人有正确的方法来处理过期的访问令牌,请帮助我。
以下是我在 asp.net 应用程序中使用 web api 所遵循的步骤。
在 ASP.net Web 表单登录页面中,我将 Web API 称为“TokenController”,该控制器采用两个参数 loginID 和密码,并返回我存储在会话对象中的 JWT 令牌。
现在,每当我的客户端应用程序也需要使用 web api 资源时,必须在请求标头中发送访问令牌,同时使用httpclient.
但是当令牌过期时,客户端无法使用 web api 资源,他必须再次登录并更新令牌!这是我不想要的,用户不应提示再次登录,因为应用程序会话超时时间尚未结束。
如何在不强制用户再次登录的情况下刷新令牌。
如果我下面给出的 JWT 访问令牌实现逻辑不合适或不正确,请告诉我正确的方法。
以下是代码。
网络API
身份验证处理程序
public class AuthHandler : DelegatingHandler
{
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,
CancellationToken cancellationToken)
{
HttpResponseMessage …Run Code Online (Sandbox Code Playgroud) 这是一个采访问题 - 如何使用单个字符有效地修剪字符串中的重复字符.
示例:假设这是输入字符串
"reeeturrrnneedd"
输出应该是:
"回"
我通过使用拆分字符串和循环遍历char数组来解释它,但是面试官并不相信答案说这不是有效的方法.
private void test()
{
string s = "reeeturrrnneeddryyf";
StringBuilder sb = new StringBuilder();
char pRvChar = default(char);
foreach (var item in s.ToCharArray())
{
if (pRvChar == item)
{
continue;
}
pRvChar = item;
sb.Append(pRvChar);
}
MessageBox.Show(sb.ToString());
}
Run Code Online (Sandbox Code Playgroud)
然后我想到Linq对象和使用不同但它会给出不正确的输出,因为它删除所有重复的字符和输出将是"retund"
有人能告诉我更有效的方法吗?
我有一个有一个公共财产的班级.
public class CustomEntity
{
string _FileName;
public string FileName
{
get { return _FileName; }
set
{
_FileName = value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我有使用linq在"CustomEntity"列表中转换的字符串数组.请建议我如何做到这一点.