如何将匹配结果列表从正则表达式转换为List<string>?我有这个功能,但它总是会产生异常,
无法将类型为"System.Text.RegularExpressions.Match"的对象强制转换为"System.Text.RegularExpressions.CaptureCollection".
public static List<string> ExtractMatch(string content, string pattern)
{
List<string> _returnValue = new List<string>();
Match _matchList = Regex.Match(content, pattern);
while (_matchList.Success)
{
foreach (Group _group in _matchList.Groups)
{
foreach (CaptureCollection _captures in _group.Captures) // error
{
foreach (Capture _cap in _captures)
{
_returnValue.Add(_cap.ToString());
}
}
}
}
return _returnValue;
}
Run Code Online (Sandbox Code Playgroud)
如果我有这个字符串,
I have a dog and a cat.
Run Code Online (Sandbox Code Playgroud)
正则表达式
dog|cat
Run Code Online (Sandbox Code Playgroud)
我希望函数将结果返回到 List<string>
dog
cat
Run Code Online (Sandbox Code Playgroud) 我对架构的设计有点困惑,但在开始之前,让我先向您展示架构,
CREATE TABLE Person
(
PersonID INT NOT NULL PRIMARY KEY,
FirstName VARCHAR(50),
LastName VARCHAR(50),
-- some columns here..
CONSTRAINT tb_idF INDEX (FirstName),
CONSTRAINT tb_idL INDEX (LastName)
-- or
-- CONSTRAINT tb_idL INDEX (FirstName, LastName)
-- other constraints ...
);
CREATE TABLE JobDescription
(
JobDescriptionID INT NOT NULL PRIMARY KEY,
JobDescriptionName VARCHAR(50) UNIQUE
-- some columns here..
-- constraints ...
);
Run Code Online (Sandbox Code Playgroud)
并且混淆在这里,表的映射表:Person和JobDescription.目前,我有这个设计,
CREATE TABLE Person_JobDescription
(
RECID INT AUTO_INCREMENT PRIMARY KEY, -- …Run Code Online (Sandbox Code Playgroud) 在过去的几天里,这一直是我的痛苦.我之前没有任何关于性能的知识就创建了数据库LIKE.我使用的查询是这样的,
SELECT ....
FROM .... JOINS ....
WHERE tableA.col1 LIKE '%keyword%' OR
tableB.col2 LIKE '%keyword%' OR
tableC.col2 LIKE '%keyword%' OR
.....
Run Code Online (Sandbox Code Playgroud)
当我测试查询时,它非常快,因为它上面只有大约100-150条记录.我想搜索包含关键字的任何字符串.几个月过去了,数据库变得庞大,包含50,000条记录.而这一次,我已经遇到了查询的低性能.它非常低.
有什么建议我可以改进吗?我不能改变数据库,因为它已经被公司使用过了.
顺便说一下,我的桌子都是INNODB.
我是.Net开发人员,是Java环境的新手.我目前正在使用Netbeans 7.1.在Windows窗体有DatagridView,ListBox和ListView.Swing中有哪些等效控件,特别是DatagridView?如何绑定这些网格ResultSet?
建议的教程链接非常感谢.
目前,我有这个记录
发票清单表
InvoiceID StoreCustomerID IssuedDate Amount IsPenalty EmployeeID
----------- --------------- ---------- ----------- ----------- -----------
1 13 2007-01-12 244 0 41
2 31 2007-04-05 81 0 34
3 23 2007-01-09 184 0 46
4 28 2007-11-21 231 0 17
5 36 2006-09-19 121 0 22
6 28 2006-10-24 240 0 17
7 15 2006-12-11 193 0 47
8 21 2007-01-15 172 0 4
Run Code Online (Sandbox Code Playgroud)
InvoiceID自动递增.我想要做的是IssuedDate通过增量更新前一行的日期.我想像这样更新它
InvoiceID StoreCustomerID IssuedDate Amount IsPenalty EmployeeID
----------- --------------- ---------- ----------- ----------- -----------
1 13 …Run Code Online (Sandbox Code Playgroud) 为什么两个查询的结果相同?(我正在使用northwind数据库.)
SELECT ContactTitle
, COUNT(CustomerID) AS NumberOfCustomer
FROM dbo.Customers
WHERE ContactTitle LIKE '%sales%'
GROUP BY ContactTitle
HAVING COUNT(*) >= 5
ORDER BY NumberOfCustomer desc
Run Code Online (Sandbox Code Playgroud)
和
SELECT
DISTINCT ContactTitle
, COUNT(CustomerID) AS NumberOfCustomer
FROM dbo.Customers
WHERE ContactTitle LIKE '%sales%'
GROUP BY ContactTitle
HAVING COUNT(*) >= 5
ORDER BY NumberOfCustomer desc
Run Code Online (Sandbox Code Playgroud)
结果是:
ContactTitle NumberOfCustomer
--------------------- ----------------
Sales Representative 17
Sales Manager 11
Sales Associate 7
Sales Agent 5
Run Code Online (Sandbox Code Playgroud)
根据我自己的理解,第二个查询得到不同的标题并计算其记录,所以我期望结果将是无,因为每个标题只有记录计数1.我是对的吗?
我有这个叫Variables有多个成员的类,其中一个叫做Name字符串.假设我有一个List<Variables>.这样做Names的X,Y,Y,Z.
string variableName = 'Y';
int _totalCount = (from p in variableList
where p.Name == variableName
select p.Name).Count();
int _totalCount2 = variableList.Select(x => x.Name == variableName).Count();
Run Code Online (Sandbox Code Playgroud)
问:为什么是_totalCount收益2(这是我想要什么),而_totalCount2回报4?
我有一个带有文本字段的表单,用户将只提供年份,MySQL数据应该返回给定年份的所有数据.但是在MySQL数据库中,格式date是给出的date(yyyy-mm-dd).
任何人都可以建议SQL查询来获取该特定年份的所有数据吗?
可能的重复:
循环遍历 DataView 中的行
我已经从数据表创建了一个数据视图。
我的问题是如何在数据视图中循环?
我知道在数据表中我可以执行如下循环:
For Each oRow as DataRow in iDataset.Tables("tableName")
Msgbox oRow(0).ToString
Next
Run Code Online (Sandbox Code Playgroud)
我该怎么做DataView?