我正在使用FileHelper 2.0来解析我的csv数据.filehelper有没有可以正确处理转义分隔符的选项?它可以将字段标识为数据而不是分隔符.
我们的csv格式:使用\来转义逗号(,)
示例数据:
姓名,姓氏
尼科\,文件,opeka
当前代码:
[DelimitedRecord(",")]
public class contactTemplate
{
public string firstName;
public string lastName;
}
Run Code Online (Sandbox Code Playgroud)
我如何获得firstName = nico,le和lastName = opeka.FileHelpers按逗号分割,现在返回:
firstName - > nico \
lastName - >,le,opeka
我有这个Python 2.7代码:
# coding: utf-8
#
f = open('data.txt', 'r')
for line in f:
line = line.decode(encoding='utf-8', errors='foo23')
print len(line)
f.close()
Run Code Online (Sandbox Code Playgroud)
为什么Python不会发出错误,因为错误的唯一有效/注册编解码器是:
该文件说,你可以自己注册,但我没有注册"foo23"和Python代码仍然没有一个错误/警告运行.如果我更改编码参数会引发错误,但如果我将错误更改为自定义字符串,则一切正常.
line = line.decode(encoding='utf-9', errors='foo23')
File "parse.py", line 7, in <module>
line = line.decode(encoding='utf-9', errors='foo23')
LookupError: unknown encoding: utf-9
Run Code Online (Sandbox Code Playgroud) 据我所知,try-catch-finally语句,在异常被捕获后,最终块被执行.当函数抛出异常时,这如何应用,如下例所示.如果在finally块中释放某些资源会导致初始异常无法解决该怎么办.这是否意味着finally块抛出新的(另一个)异常,覆盖原始异常.
我知道你可以捕获可能在调用堆栈上方的try-finally语句的try块中抛出的异常.也就是说,您可以在调用包含try-finally语句的方法(msdn文档)的方法中捕获异常.
static void foo()
{
try
{
Console.WriteLine("foo");
throw new Exception("exception");
}
finally
{
Console.WriteLine("foo's finally called");
}
}
static void Main(string[] args)
{
try
{
foo();
}
catch (Exception e)
{
Console.WriteLine("Exception caught");
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
foo
foo's finally called
Exception caught
Run Code Online (Sandbox Code Playgroud) 我想答案很简单,但我没有看到解释.
Map<String, Set<String>> m = new HashMap<String, Set<String>>();
Set<String> a = new HashSet<String>();
a.add("a");
a.add("b");
a.add("c");
m.put("set", a); // reference
a = null; // if I type a.remove("b"); variable m holds only a and c as it should
System.out.println(m.get("set")); // Why this prints [a, b, c] as it should null or empty
Run Code Online (Sandbox Code Playgroud) 很简单的例子:
<StackLayout>
<Button Text="{Binding LoginButtonText}" Clicked="Button_Clicked"></Button>
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
代码背后:
public partial class ItemsPage : ContentPage
{
private ViewModels.ItemsViewModel _viewModel;
public ItemsPage()
{
_viewModel = new ItemsViewModel();
BindingContext = _viewModel;
InitializeComponent();
}
private void Button_Clicked(object sender, EventArgs e)
{
this._viewModel.LoginButtonText = "Start" + DateTime.Now.ToString();
// this loop is just for testing purposes. To demonstrate
// that this loop block UI thread
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 1000; j++)
{
string …Run Code Online (Sandbox Code Playgroud) 我需要使用实体框架检查客户的代码是否已经存在于数据库中。理想情况下,我会像这样编写简单的 sql 查询:
select id from dbo.Customer where RecActive = 1 and Code = 'xxx';
Run Code Online (Sandbox Code Playgroud)
如果查询结果为空,则表示代码'xxx'的客户尚不存在。在实体框架中,有多种方法可以编写它,但我正在寻找最接近上面的一种。注意:代码字段上有唯一索引
using (var context = new CustomerContext())
{
// not very efficient as it reads all columns
return context.Customers.Where(c => c.RecActive && c.Code == customerCode).SingleOrDefault() != null ? true : false;
return context.Customers.Where(c => c.RecActive && c.Code == customerCode).Count() > 0 ? true : false;
// translates to this query:
// exec sp_executesql N'SELECT [Limit1].[Id] AS [Id]
// FROM ( SELECT TOP …Run Code Online (Sandbox Code Playgroud) using (MailMessage message = new MailMessage()) // using System.Net.Mail;
{
string mailFrom = "sender@email.si";
string smtpServer = "smtp.server.net";
message.From = new MailAddress(mailFrom);
message.To.Add("xxx@gmail.com");
message.Subject = "subject";
message.SubjectEncoding = Encoding.UTF8;
message.IsBodyHtml = true;
message.Body = "<h1>VODA</h1>";
message.BodyEncoding = Encoding.UTF8;
AlternateView plainView = AlternateView.CreateAlternateViewFromString("test content", Encoding.UTF8, "text/plain");
message.AlternateViews.Add(plainView);
SmtpClient smtpClient = new SmtpClient(smtpServer);
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("user", "pass");
smtpClient.EnableSsl = true;
smtpClient.Port = 587;
smtpClient.Send(message);
}
Run Code Online (Sandbox Code Playgroud)
在查看在 gmail 收到的内容时,我接下来会看到:
Subject: subject
Content-Type: multipart/alternative; boundary=--boundary_0_989afdbb-5fe4-4155-ba59-3d5ffdbb909e
Message-Id: <20161208131903.36280C956C@in-1.mail.xxx.net> …Run Code Online (Sandbox Code Playgroud) 这是我的测试用例:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-2.0.2.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('.sequence').on('click', function()
{
e = $(this).next(); // div element, DOM element
e.html(Math.random());
e.on('click', function()
{
e.html(Math.random());
});
});
});
</script>
</head>
<body>
<div class="sequence">Sequence 1</div>
<div>1</div>
<div class="sequence">Sequence 2</div>
<div>2</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
上层代码可以在http://jsfiddle.net/3LrXZ上测试.
当我点击div 序列1时,下一个首先有文本'1'的div得到一些随机值让我们说0.3126203578431159.然后我点击div 序列2和最初有值'2'的下一个div得到一些随机值让我们说0.16280379495583475.直到现在一切正常.现在当我点击第一个0.3126203578431159时,第二个div 0.16280379495583475会改变值.元素0.312620357843115应该更改值(获取新的随机值,而不是第二个).
这是否意味着您无法绑定DOM元素上的事件,您只能绑定html元素id,类和其他一些属性上的事件?是不是每个DOM元素都有一些可以使用的ID.