我正在寻找一种更有效的方法从字符串列表中删除空字符串值.
下面的代码可以工作,但对于非常大的数据集,这似乎效率低下.有没有更有效的方法来做到这一点?
仅供参考 - 开始只是构建一个数据集,以包含一个包含空字符串的列表
public static void Main()
{
//Building the data set
List<List<string>> list = new List<List<string>>();
list.Add(new List<string> {"One", "Two", "", "Eight"});
list.Add(new List<string> {"Three", "Five", "Six"});
list.Add(new List<string> {"Sixteen", "", ""});
list.Add(new List<string> {"Twenty-Eight", "Forty", "Nine"});
//Create an empty List of a List
List<List<string>> newList = new List<List<string>>();
//Loop through the original list and purge each list of empty strings
for(int i = 0; i < list.Count; i++) {
newList.Add(list[i].Where(x => !string.IsNullOrEmpty(x)).ToList());
}
foreach (var s …Run Code Online (Sandbox Code Playgroud) 我试图在模式关闭时重置我的表单数据。我认为我的部分问题是表单数据<Mint>位于另一个组件中。
老实说,每当显示或隐藏模式时我都想重置数据。因此,如果有一种方法可以重置toggleModalOne()函数内的表单数据,那就太棒了,但我不知道如何做。
任何意见是极大的赞赏。
// BuyIt.jsx
import React, { useState } from "react";
import TextLoop from "react-text-loop";
import Modal from "react-modal";
import Mint from "../../components/slider/mint.js";
const BuyIt = () => {
const [isOpen, setIsOpen] = useState(false);
function toggleModalOne() {
setIsOpen(!isOpen);
}
return (
<div className="div-buyNowBtn">
<button id="buyNowBtn" className="white-fill-bg btn-outline btn-lg" onClick={toggleModalOne}>
Buy Now
</button>
</div>
<Modal
isOpen={isOpen}
onRequestClose={toggleModalOne}
contentLabel="My dialog"
className="custom-modal"
overlayClassName="custom-overlay"
closeTimeoutMS={500}
>
<Mint/>
</Modal>
);
}
Run Code Online (Sandbox Code Playgroud) 我是一个PHP菜鸟,我一直收到这个错误:
解析错误:语法错误,意外的文件结束...
它指向的线是最后一行.我的'header.php'声明了!DOCTYPE html,我的'config.php'保存了数据库属性.
任何帮助将不胜感激.
<?php
include 'config.php';
include 'header.php';
?>
<div id='wrapper'>
<div style='height:50em;width:100%;z-index:10;margin-top:1em;text-align:left;'>
<table id='mainDPUtable'>
<th class='cen'>NUM</th>
<th class='cen'>TYP</th>
<th class='cen'>LVL</th>
<th class='cen'>Job No.</th>
<th class='cen'>Responsible</th>
<th class='cen'>Rep</th>
<th class='cen'>Initiated</th>
<th class='cen'>Age</th>
<th class='cen'>Part Number</th>
<th class='cen'>Qty</th>
<th class='cen'>Description</th>
<th class='cen'>Location</th>
<th class='cen'>Complete</th>
<?php
$db = new PDO("mysql:host=localhost;dbname=".$dbname.",".$user.",".$pswd);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$result = $db->prepare("SELECT NUM, TYP, LVL, JOBNO, RESP, REP, DATE_INITIATED, AGE, PARTNO, QTY, DESCRIPTION, LOC FROM ".$dbtable);
$result->execute();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$num=$row["NUM"];
$typ=$row["TYP"];
$lvl=$row["LVL"];
$jobNo=$row["JOBNO"];
$resp=$row["RESP"];
$rep=$row["REP"]; …Run Code Online (Sandbox Code Playgroud) 我是php的新手.我有一个jQuery脚本,将生成新元素.用户单击"提交"并转到page2.php.这就是我需要一个php循环来确定用户创建了多少文本输入的地方.
page1.php中
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.9.1.min.js'> </script>
<script type='text/javascript'>
$(document).ready(function() {
$('#btn').click(function() {
var x = parseInt($('#hidtxt').val()) + (1*1);
var z = "<input type='text' id='txt" + x + "' name='txt" + x + "' size='10'/>";
$('#main').append(z);
$('#hidtxt').val(x);
});
});
</script>
</head>
<body>
<form name='myform' action='page2.php' method='post'/>
<input type='hidden' value='1' name='hidtxt' id='hidtxt'/>
<div id='main'>
<input type='text' id='txt1' name='txt1' size='10'/>
</div>
<input type='button' id='btn' name='btn' value='Add Text Box'/>
<input type='submit' value='Submit' id='subBtn' name='subBtn'/>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
然后是page2.php
<?php
//CREATE …Run Code Online (Sandbox Code Playgroud) 这是对这里发现的SO问题的回应 - > 每10个轮询一次
SO帖子有所帮助,但是当我试图将它符合我的需求时,它就没有用完了.
我有一个PHP脚本,将随机数据输入我的数据库.当我将浏览器直接指向'create_new_job.php'时,脚本运行正常.我的问题是,一旦我的主页加载,我似乎无法每10秒运行一次ajax请求来运行脚本.
我的php脚本将数据插入数据库:'create_new_job.php'
我的主页:index.php
这是在我的index.php中:
<script>
function newjobs() {
var inputjob = $.ajax({
url: "create_new_job.php",
complete: schedulenewjobs
});
inputjob.done(function(data) { alert('Job added!'); }
inputjob.fail(function(data) { alert('Job not added....'); }
}
function schedulenewjobs() {
setTimeout(function() { newjobs(); }, 10000);
}
</script>
Run Code Online (Sandbox Code Playgroud)
首先,我遇到了错误
inputjob.fail(.....
但当我删除'完成'和'失败'通知时,没有任何反应.没有插入数据,我没有收到任何错误.
我不是想要检索任何数据 - 我只想每10秒运行一次'create_new_job.php'.
任何帮助将不胜感激.
我需要一种算法,它可以在List中使用任意数量的List并生成一组唯一的排列.我更喜欢找到LINQ解决方案.
我实际上有一个运行良好的Javascript函数,我正在尝试用C#重新创建它(参见底部的代码)
C#(我的尝试) - Visual Studio不喜欢我的第二个Aggregate().它说 the arguments cannot be inferred from usage
public static void testit()
{
List<List<string>> master = new List<List<string>>();
List<string> voltages = new string[] { "208", "230", "460" }.ToList();
List<string> sysConfigs = new string[] { "10205", "10210", "10215", "10220" }.ToList();
master.Add(voltages);
master.Add(sysConfigs);
var amp = master.Aggregate(
(a, b) => a.Aggregate(
(r, v) => r.Concat(
b.Select(w => new List<string>().Concat(v, w))
), new List<string>()
)
);
}
Run Code Online (Sandbox Code Playgroud)
这个新集合的输出应该如下所示:
/*
OUTPUT (displayed as arrays - but will be lists): …Run Code Online (Sandbox Code Playgroud) 这个问题已被多次询问过,但我见过的每个SO帖子都想要一个特定的长度值,而我只是想知道每个独特的组合,无论长度如何.
下面的代码仅提供了一个列表,其中恰好有3个组合条目(并且它们不是唯一的).
List<string> list = new List<string> { "003_PS", "003_DH", "003_HEAT" };
var perms = list.GetPermutations();
public static class Extensions
{
public static IEnumerable<IEnumerable<T>> GetPermutations<T>(this IEnumerable<T> items)
{
foreach (var item in items)
{
var itemAsEnumerable = Enumerable.Repeat(item, 1);
var subSet = items.Except(itemAsEnumerable);
if (!subSet.Any())
{
yield return itemAsEnumerable;
}
else
{
foreach (var sub in items.Except(itemAsEnumerable).GetPermutations())
{
yield return itemAsEnumerable.Union(sub);
}
}
}
}
}
/*
OUTPUT:
003_PS, 003_DH, 003_HEAT
003_PS, 003_HEAT, 003_DH
003_DH, 003_PS, 003_HEAT
003_DH, 003_HEAT, 003_PS …Run Code Online (Sandbox Code Playgroud) (使用Visual Studio 2015/ASP.net和C#)
我收到的错误是:
System.Datal.dll中发生类型为"System.Data.SqlClient.SqlException"的异常,但未在用户代码中处理.
附加信息:')附近的语法不正确
我已经测试过的SQL语句,它运行得很好,我检查了每个括号,似乎无法弄清楚这里有什么问题?
有人可以帮忙吗?
代码在这里(我指出VS标记的行)
<table>
<thead>
<tr>
<th>ID</th>
<th>First</th>
<th>Last</th>
<th>Email</th>
<th>Permission</th>
</tr>
</thead>
<tbody>
@{
string connStr = ConfigurationManager.ConnectionStrings["myConnString"].ConnectionString;
var sql = "SELECT * FROM tbl_users ORDER BY Id ASC)";
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader(); //*** This is the line that VS flags **
while (reader.Read())
{
<tr>
<td>@reader["Id"].ToString()</td>
<td>@reader["FNAME"].ToString()</td>
<td>@reader["LNAME"].ToString()</td>
<td>@reader["USERNAME"].ToString()</td>
<td>@reader["EMAIL"].ToString()</td>
<td>@reader["PERMISSION"].ToString()</td>
</tr>
}
if (!reader.IsClosed)
{ …Run Code Online (Sandbox Code Playgroud)