我只是好奇.
下面的两个代码片段都没有做同样的事情吗?为什么会有人想使用...的,而不是..,难道不..更容易阅读?
for x in 1...11
puts x
end
for x in 1..10
puts x
end
Run Code Online (Sandbox Code Playgroud)
对不起,如果这太主观,我只是不明白为什么我想要1 to (n-1)而不是1 to n
我需要使用EF Code First插入大约2500行.
我的原始代码看起来像这样:
foreach(var item in listOfItemsToBeAdded)
{
//biz logic
context.MyStuff.Add(i);
}
Run Code Online (Sandbox Code Playgroud)
这花了很长时间.每次DBSet.Add()通话大约需要2.2秒,相当于大约90分钟.
我重构了这个代码:
var tempItemList = new List<MyStuff>();
foreach(var item in listOfItemsToBeAdded)
{
//biz logic
tempItemList.Add(item)
}
context.MyStuff.ToList().AddRange(tempItemList);
Run Code Online (Sandbox Code Playgroud)
这只需要大约4秒钟才能运行.但是,.ToList()查询当前表中的所有项目,这是非常必要的,从长远来看可能是危险的,甚至更耗时.一个解决方法是做一些事情,context.MyStuff.Where(x=>x.ID = *empty guid*).AddRange(tempItemList)因为我知道永远不会有任何返回.
但我很好奇是否有其他人知道使用EF Code First进行批量插入的有效方法?
所以现在我在我的应用程序中使用zxing条形码扫描仪.这是示例代码(通用):
if(position == 0){
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
contents = intent.getStringExtra("SCAN_RESULT");
format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
Intent i = new Intent(Main.this, BarcodeScanner.class);
startActivity(i);
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,在启动时BarcodeScanner.class,我也希望传入contents它.我该怎么做呢?
因此,我可以轻松地使用LINQ to XML来遍历正确设置的XML文档.但是我在解决如何将其应用于HTML表时遇到了一些问题.这是设置:
<table class='inner'
width='100%'>
<tr>
<th>Area</th>
<th>Date</th>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Zip Code</th>
<th>Type</th>
<th>Amount</th>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
基本上,可以有无穷无尽的行数,我希望能够逐行检查数据.谁能指出我正确的方向?我应该使用LINQ以外的工具吗?
编辑:对于混淆感到抱歉,我的问题是我尝试从中收集数据的页面是HTML,而不是XML.确切的扩展名是".aspx.htm".这似乎没有正确加载,即使它确实如此,我不确定如何遍历HTML页面,因为在表之前有一个表我正在尝试从中获取数据.
例如,这是表格中的XPATH,我试图从中获取信息:
/html/body/form/div[3]/table/tbody/tr[5]/td/table
Run Code Online (Sandbox Code Playgroud) 所以我试图在javacript中拆分一个字符串,看起来像这样:
"foo","super,foo"
Run Code Online (Sandbox Code Playgroud)
现在,如果我使用.split(",")它会将字符串转换为包含[0]"foo" [1]"super [2]foo"
但是,我只想拆分引号之间的逗号,如果我使用.split('","')它,它将变成[0]"foo [1]super,foo"
有没有办法可以拆分表达分隔符的元素,但是它是否保留了某些分隔符而不必编写代码来将值连接回字符串?
编辑:
我希望得到[0]"foo",[1]"super,foo"我的结果.基本上,我需要编辑某些数据的方式,我需要[0]中的内容永远不会改变,但[1]的内容将根据它包含的内容而改变."foo", "I WAS CHANGED"如果[1]的内容不是需要改变的东西,它会被连接回来看起来像或者它确实会保持不变
他是我的 TextView 的一个例子,它离开了屏幕的右侧。我尝试设置填充和东西,但似乎没有任何效果。有任何想法吗?这是我的层次结构,ScrollView,TableLayout
<TableRow>
<TextView
android:layout_column="1"
android:id="@+id/text_price"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textCapCharacters"
android:padding="2dip"
android:text="@string/game_price"
/>
<EditText
android:id="@+id/gameprice"
android:inputType="textCapCharacters"
android:gravity="right"
android:minWidth="120dip"
/>
</TableRow>
Run Code Online (Sandbox Code Playgroud) android ×2
c# ×2
html ×1
javascript ×1
linq ×1
linq-to-xml ×1
ruby ×1
sql-server ×1
xml ×1
zxing ×1