小编bro*_*and的帖子

FileHelper转义分隔符

我正在使用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

c# csv filehelpers

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

string.decode自定义错误参数

我有这个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不会发出错误,因为错误的唯一有效/注册编解码器是:

  • 严格
  • 忽视
  • 更换
  • xmlcharrefreplace
  • backslashreplace

文件说,你可以自己注册,但我没有注册"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)

python

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

最后在catch之前阻止执行

据我所知,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)

c# try-catch

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

不明白为什么Set不为null

我想答案很简单,但我没有看到解释.

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)

java

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

发生OnClick_Event时立即更新UI

很简单的例子:

<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)

c# multithreading ui-thread xamarin xamarin.forms

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

使用实体框架 LINQ 有效检查数据库中是否存在记录

我需要使用实体框架检查客户的代码是否已经存在于数据库中。理想情况下,我会像这样编写简单的 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)

c# linq entity-framework linq-to-sql

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

发送 html 电子邮件和纯文本作为替代

    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)

c# email system.net.mail

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

$(this)上的jQuery click事件

这是我的测试用例:

<!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.

jquery

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