本文整理汇总了C#中SortedSet.Any方法的典型用法代码示例。如果您正苦于以下问题:C# SortedSet.Any方法的具体用法?C# SortedSet.Any怎么用?C# SortedSet.Any使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SortedSet
的用法示例。
在下文中一共展示了SortedSet.Any方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main()
{
var findedAreas = new SortedSet<Area>();
for (int row = 0; row < matrix.GetLength(0); row++)
{
for (int col = 0; col < matrix.GetLength(1); col++)
{
if (matrix[row, col] == ' ')
{
GetConnectedAreaSize(row, col);
var area = new Area(row, col, areaSize);
findedAreas.Add(area);
areaSize = 0;
}
}
}
if (findedAreas.Any())
{
Console.WriteLine("Total areas found: {0}", findedAreas.Count);
int number = 0;
foreach (var area in findedAreas)
{
++number;
Console.WriteLine("Area #{0} at {1}", number, area.ToString());
}
}
}
示例2: CalculatePath
private static List<Step> CalculatePath(IMovable movable, Zone destination)
{
List<Step> steps = new List<Step>();
if (movable.Location == destination || !movable.CanCross(destination))
return steps;
//Calculate path using A* algorithm
SortedSet<PathfindingNode> openList = new SortedSet<PathfindingNode>(
Comparer<PathfindingNode>.Create((a, b) => a.CompareTo(b)));
HashSet<Zone> closedList = new HashSet<Zone>();
openList.Add(new PathfindingNode(movable.Location, destination.DistanceWith(movable.Location)));
bool pathFound = destination == movable.Location;
while (!pathFound)
{
if (openList.Count == 0)
break;
PathfindingNode currentNode = openList.First();
foreach (Zone neighbourg in currentNode.Zone.Adjacencies.Select(a => a.Neighbourg).Where(s => movable.CanCross(s)))
{
if (closedList.Contains(neighbourg) || openList.Any(n => n.Zone == neighbourg))
continue;
openList.Add(new PathfindingNode(neighbourg, destination.DistanceWith(neighbourg), currentNode));
if (neighbourg == destination) // Path found !
{
pathFound = true;
steps.Add(new Step(currentNode.Zone, destination));
while (currentNode.Parent != null)
{
steps.Add(new Step(currentNode.Parent.Zone, currentNode.Zone));
currentNode = currentNode.Parent;
}
steps.Reverse();
break;
}
}
openList.Remove(currentNode);
closedList.Add(currentNode.Zone);
}
if (steps.Count == 0)
return steps;
return steps;
}
示例3: WithAttr
private CTerm WithAttr(CTerm type, IDiaSymbol sym)
{
SortedSet<TypeAttr> attrs = new SortedSet<TypeAttr>();
if (sym.constType == 1) { attrs.Add(TypeAttrs.Const); }
if (sym.volatileType == 1) { attrs.Add(TypeAttrs.Volatile); }
if (sym.unalignedType == 1) { attrs.Add(TypeAttrs.Unaligned); }
return attrs.Any() ? new CAttrTerm(type, attrs) : type;
}
示例4: LearnInvFromTemplate
private ICEOutcome LearnInvFromTemplate(Dictionary<string, int> impl2Priority, Template t, int range, out VCGenOutcome overallOutcome)
{
overallOutcome = null;
// create a new z3 context
if (z3Context != null)
{
z3Context.context.Dispose();
z3Context.config.Dispose();
}
z3Context = new Z3Context();
foreach (var func in existentialFunctions.Values)
{
// initialize function to an "Octagons" instance with the given template "t".
function2Value[func.Name] = ICEDomainFactory.GetInstance("Octagons", t, ref z3Context, func.Name, range);
}
// add counterexamples into the z3Context. These are obtained from the earlier iterations of the template.
foreach (var cex in counterExamples)
{
AddCounterExampleToZ3Context(cex);
}
var worklist = new SortedSet<Tuple<int, string>>();
name2Impl.Keys.Iter(k => worklist.Add(Tuple.Create(impl2Priority[k], k)));
while (worklist.Any())
{
var impl = worklist.First().Item2;
worklist.Remove(worklist.First());
#region vcgen
var gen = prover.VCExprGen;
var terms = new List<Expr>();
foreach (var tup in impl2FuncCalls[impl])
{
var controlVar = tup.Item2;
var exprVars = tup.Item3;
var varList = new List<Expr>();
exprVars.Args.OfType<Expr>().Iter(v => varList.Add(v));
var args = new List<Expr>();
controlVar.InParams.Iter(v => args.Add(Expr.Ident(v)));
Expr term = Expr.Eq(new NAryExpr(Token.NoToken, new FunctionCall(controlVar), args),
function2Value[tup.Item1].Gamma(varList));
if (controlVar.InParams.Count != 0)
{
term = new ForallExpr(Token.NoToken, new List<Variable>(controlVar.InParams.ToArray()),
new Trigger(Token.NoToken, true, new List<Expr> { new NAryExpr(Token.NoToken, new FunctionCall(controlVar), args) }),
term);
}
terms.Add(term);
}
var env = BinaryTreeAnd(terms, 0, terms.Count - 1);
env.Typecheck(new TypecheckingContext((IErrorSink)null));
var envVC = prover.Context.BoogieExprTranslator.Translate(env);
var vc = gen.Implies(envVC, impl2VC[impl]);
if (CommandLineOptions.Clo.Trace)
{
Console.WriteLine("Verifying {0}: ", impl);
//Console.WriteLine("env: {0}", envVC);
var envFuncs = new HashSet<string>();
impl2FuncCalls[impl].Iter(tup => envFuncs.Add(tup.Item1));
envFuncs.Iter(f => PrintFunction(existentialFunctions[f]));
}
#endregion vcgen
VCExpr finalVC;
#region bound_value_of_cexs
#if false
finalVC = vc;
#else
int bound = 1000000;
terms.Clear();
foreach (var tup in impl2FuncCalls[impl])
{
var exprVars = tup.Item3;
var varList = new List<Expr>();
exprVars.Args.OfType<Expr>().Where(v => v.Type.IsInt).Iter(v => varList.Add(v));
foreach (var variable in varList)
{
terms.Add(Expr.Le(variable, Expr.Literal(bound)));
terms.Add(Expr.Ge(variable, Expr.Literal(-1 * bound)));
//terms.Add(Expr.Ge(variable, Expr.Literal(0)));
}
}
var boundcex = BinaryTreeAnd(terms, 0, terms.Count - 1);
boundcex.Typecheck(new TypecheckingContext((IErrorSink)null));
var boundcexVC = prover.Context.BoogieExprTranslator.Translate(boundcex);
finalVC = gen.Implies(boundcexVC, vc);
//.........这里部分代码省略.........
示例5: LearnInv
private VCGenOutcome LearnInv(Dictionary<string, int> impl2Priority)
{
var worklist = new SortedSet<Tuple<int, string>>();
name2Impl.Keys.Iter(k => worklist.Add(Tuple.Create(impl2Priority[k], k)));
while (worklist.Any())
{
var impl = worklist.First().Item2;
worklist.Remove(worklist.First());
#region vcgen
var gen = prover.VCExprGen;
var terms = new List<Expr>();
foreach (var tup in impl2FuncCalls[impl])
{
var controlVar = tup.Item2;
var exprVars = tup.Item3;
var varList = new List<Expr>();
exprVars.Args.OfType<Expr>().Iter(v => varList.Add(v));
var args = new List<Expr>();
controlVar.InParams.Iter(v => args.Add(Expr.Ident(v)));
Expr term = Expr.Eq(new NAryExpr(Token.NoToken, new FunctionCall(controlVar), args),
function2Value[tup.Item1].Gamma(varList));
if (controlVar.InParams.Count != 0)
{
term = new ForallExpr(Token.NoToken, new List<Variable>(controlVar.InParams.ToArray()),
new Trigger(Token.NoToken, true, new List<Expr> { new NAryExpr(Token.NoToken, new FunctionCall(controlVar), args) }),
term);
}
terms.Add(term);
/*
foreach (var variable in varList)
{
terms.Add(Expr.Le(variable, Expr.Literal(10)));
terms.Add(Expr.Ge(variable, Expr.Literal(-10)));
}
*/
}
var env = BinaryTreeAnd(terms, 0, terms.Count - 1);
env.Typecheck(new TypecheckingContext((IErrorSink)null));
var envVC = prover.Context.BoogieExprTranslator.Translate(env);
var vc = gen.Implies(envVC, impl2VC[impl]);
if (CommandLineOptions.Clo.Trace)
{
Console.WriteLine("Verifying {0}: ", impl);
//Console.WriteLine("env: {0}", envVC);
var envFuncs = new HashSet<string>();
impl2FuncCalls[impl].Iter(tup => envFuncs.Add(tup.Item1));
envFuncs.Iter(f => PrintFunction(existentialFunctions[f]));
}
#endregion vcgen
VCExpr finalVC;
for (int i = 0; i <= bounds4cex.Count(); i++)
{
#region boundcexvalues
/* Last iteration is when there are enforced no bounds on the cex values. */
if (i < bounds4cex.Count())
{
int bound = bounds4cex.ElementAt(i);
terms.Clear();
foreach (var tup in impl2FuncCalls[impl])
{
var exprVars = tup.Item3;
var varList = new List<Expr>();
exprVars.Args.OfType<Expr>().Where(v => v.Type.IsInt).Iter(v => varList.Add(v));
foreach (var variable in varList)
{
terms.Add(Expr.Le(variable, Expr.Literal(bound)));
terms.Add(Expr.Ge(variable, Expr.Literal(-1 * bound)));
//terms.Add(Expr.Ge(variable, Expr.Literal(0)));
}
}
var boundcex = BinaryTreeAnd(terms, 0, terms.Count - 1);
boundcex.Typecheck(new TypecheckingContext((IErrorSink)null));
var boundcexVC = prover.Context.BoogieExprTranslator.Translate(boundcex);
finalVC = gen.Implies(boundcexVC, vc);
}
else
{
//finalVC = vc;
int bound = 1000000;
terms.Clear();
foreach (var tup in impl2FuncCalls[impl])
{
var exprVars = tup.Item3;
var varList = new List<Expr>();
exprVars.Args.OfType<Expr>().Where(v => v.Type.IsInt).Iter(v => varList.Add(v));
foreach (var variable in varList)
{
//.........这里部分代码省略.........
示例6: CheckMimeToDisplay
/// <summary>
/// Sprawdza czy potrafimy wyświetlić dany tym MIME
/// </summary>
/// <returns></returns>
private bool CheckMimeToDisplay()
{
if (!headers.ContainsKey("Content-Type"))
return true;
var mime = headers["Content-Type"];
var allowedMimes = new SortedSet<string> { "text/html", "text/plain" };
return allowedMimes.Any(allowedMime => mime.StartsWith(allowedMime));
}